Modification de modules T-SQL compilés en mode natif
S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Dans SQL Server (SQL Server 2016 (13.x) et Azure SQL Database, vous pouvez effectuer des ALTER
opérations sur des procédures stockées compilées en mode natif et d’autres modules Transact-SQL compilés en mode natif, tels que des fonctions définies par l’utilisateur scalaire et des déclencheurs à l’aide de l’instruction ALTER
.
Lors de l’exécution ALTER
sur un module Transact-SQL compilé en mode natif, le module est recompilé à l’aide d’une nouvelle définition. Quand la recompilation est en cours, l’ancienne version du module reste disponible pour l’exécution. Une fois la compilation terminée, les exécutions de module sont purgées et la nouvelle version du module est installée. Lorsque vous modifiez un module Transact-SQL compilé en mode natif, vous pouvez modifier les options suivantes.
- Paramètres
- EXECUTE AS
- TRANSACTION ISOLATION LEVEL
- LANGUAGE
- DATEFIRST
- DATEFORMAT
- DELAYED_DURABILITY
Note
Les modules Transact-SQL compilés en mode natif ne peuvent pas être convertis en modules non compilés en mode natif. Les modules T-SQL non compilés en mode natif ne peuvent pas être convertis en modules compilés dans ce mode.
Pour plus d’informations sur ALTER PROCEDURE
les fonctionnalités et la syntaxe, consultez ALTER PROCEDURE (Transact-SQL).
Vous pouvez exécuter sp_recompile sur des modules Transact-SQL compilés en mode natif, ce qui entraîne la recompilation du module lors de l’exécution suivante.
Exemple
L’exemple suivant représente la création d’une table optimisée en mémoire (T1) et d’une procédure stockée compilée en mode natif (usp_1) qui sélectionne toutes les colonnes de la table T1. Ensuite, usp_1 est modifiée pour supprimer la clause EXECUTE AS
, changer LANGUAGE
et sélectionner une seule colonne (C1) à partir 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
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour