Altering Natively Compiled T-SQL Modules
Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di Azure
In SQL Server ( SQL Server 2016 (13.x) e versioni successive) e database SQL di Azure è possibile eseguire operazioni ALTER
in stored procedure compilate in modo nativo e in altri moduli Transact-SQL compilati in modo nativo, ad esempio UDF scalari e trigger, con l'istruzione ALTER
.
Quando si esegue ALTER
in un modulo Transact-SQL compilato in modo nativo, il modulo viene ricompilato con una nuova definizione. Durante la ricompilazione la versione precedente del modulo continua a essere disponibile per l'esecuzione. Una volta completata la compilazione, le esecuzioni dei moduli vengono svuotate e viene installata la nuova versione del modulo. Quando si modifica un modulo Transact-SQL compilato in modo nativo, è possibile modificare le opzioni seguenti.
- Parametri
- EXECUTE AS
- TRANSACTION ISOLATION LEVEL
- LANGUAGE
- DATEFIRST
- DATEFORMAT
- DELAYED_DURABILITY
Nota
I moduli Transact-SQL compilati in modo nativo non possono essere convertiti in moduli compilati in modo non nativo. I moduli T-SQL compilati in modo non nativo non possono essere convertiti in moduli compilati in modo nativo.
Per altre informazioni sul funzionamento e la sintassi di ALTER PROCEDURE
, vedi ALTER PROCEDURE (Transact-SQL).
È possibile eseguire sp_recompile in moduli Transact-SQL compilati in modo nativo. Ciò causa la ricompilazione del modulo all'esecuzione successiva.
Esempio
L'esempio seguente crea una tabella ottimizzata per la memoria (T1) e una stored procedure compilata in modo nativo (usp_1) che seleziona tutte le colonne T1. usp_1 viene quindi modificata per rimuovere la clausola EXECUTE AS
, modificare LANGUAGE
e selezionare una sola colonna (C1) da 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
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per