Ändern von systemintern kompilierten T-SQL-Modulen
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance
In SQL Server ( SQL Server 2016 (13.x) und höher) und Azure SQL-Datenbank können Sie Vorgänge für nativ kompilierte gespeicherte Prozeduren und andere nativ kompilierte Transact-SQL-Module wie skalare UDFs und Trigger mithilfe der ALTER
Anweisung ausführenALTER
.
Wenn sie auf einem systemeigenen kompilierten Transact-SQL-Modul ausgeführt ALTER
wird, wird das Modul mithilfe einer neuen Definition neu kompiliert. Während der Neukompilierung steht die alte Version des Moduls nach wie vor noch für die Ausführung zur Verfügung. Nach Abschluss der Kompilierung werden die Modulausführungen entladen und die neue Version des Moduls wird installiert. Wenn Sie ein systemeigenes kompiliertes Transact-SQL-Modul ändern, können Sie die folgenden Optionen ändern.
- Parameter
- EXECUTE AS
- TRANSACTION ISOLATION LEVEL
- SPRACHE
- DATEFIRST
- DATEFORMAT
- DELAYED_DURABILITY
Hinweis
Native kompilierte Transact-SQL-Module können nicht in nicht systemeigene kompilierte Module konvertiert werden. Nicht-nativ kompilierte T-SQL-Module können nicht in nativ kompilierte Module konvertiert werden.
Weitere Informationen zu Funktionalität und Syntax finden Sie unter ALTER PROCEDURE (Transact-SQL).For more information on ALTER PROCEDURE
functionality and syntax, see ALTER PROCEDURE (Transact-SQL).
Sie können sp_recompile für ein systemeigenes kompiliertes Transact-SQL-Modul ausführen, wodurch das Modul bei der nächsten Ausführung neu kompiliert wird.
Beispiel
Das folgende Beispiel zeigt die Erstellung einer speicheroptimierten Tabelle (T1) und einer systemintern kompilierten gespeicherten Prozedur (ups_1), die alle Spalten von Tabelle T1 auswählt. Anschließend wird usp_1 geändert, um die Klausel EXECUTE AS
zu entfernen, LANGUAGE
zu ändern und nur eine Spalte (C1) von T1 auszuwählen.
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
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für