Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Managed Instance
En SQL Server (SQL Server 2016 [13.x] y posterior] y Azure SQL Database, puede realizar operaciones ALTER
en procedimientos almacenados compilados de forma nativa y otros módulos de Transact-SQL compilados de forma nativa, como UDF escalares y desencadenadores mediante la instrucción ALTER
.
Al ejecutar ALTER
en un módulo de Transact-SQL compilado de forma nativa, el módulo se vuelve a compilar con una nueva definición. Mientras la recompilación está en curso, la versión antigua del módulo sigue estando disponible para su ejecución. Una vez completada la compilación, se agotan las ejecuciones del módulo y se instala la nueva versión del módulo. Cuando se modifica un módulo Transact-SQL compilado de forma nativa, puede modificar las opciones siguientes.
- Parámetros
- EXECUTE AS
- NIVEL DE AISLAMIENTO DE TRANSACCIÓN
- LANGUAGE
- DATEFIRST
- DATEFORMAT
- DELAYED_DURABILITY
Nota:
No es posible convertir módulos Transact-SQL compilados de forma nativa en módulos compilados de forma no nativa. No es posible convertir módulos T-SQL compilados de forma no nativa en módulos compilados de forma nativa.
Para más información sobre la funcionalidad y la sintaxis de ALTER PROCEDURE
, vea ALTER PROCEDURE (Transact-SQL).
Si puede ejecutar sp_recompile en un módulo Transact-SQL compilado de forma nativa, hará que se vuelva a compilar en la siguiente ejecución.
Ejemplo
En el ejemplo siguiente se crea una tabla optimizada para memoria (T1) y un procedimiento almacenado compilado de forma nativa (usp_1) que selecciona todas las columnas de T1. Después, se modifica usp_1 para quitar la cláusula EXECUTE AS
, cambiar el valor de LANGUAGE
y seleccionar una sola columna (C1) de T1.
CREATE TABLE [dbo].[T1] (
[c1] [int] NOT NULL,
[c2] [float] NOT NULL,
CONSTRAINT [PK_T1] PRIMARY KEY NONCLUSTERED ([c1])
) WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_AND_DATA )
GO
CREATE PROCEDURE [dbo].[usp_1]
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH
(
TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english'
)
SELECT c1, c2 FROM dbo.T1
END
GO
ALTER PROCEDURE [dbo].[usp_1]
WITH NATIVE_COMPILATION, SCHEMABINDING
AS BEGIN ATOMIC WITH
(
TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'Dutch'
)
SELECT c1 FROM dbo.T1
END
GO