Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Désactive un déclencheur.
Conventions de la syntaxe Transact-SQL
Syntaxe
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
Arguments
schema_name
Nom du schéma auquel appartient le déclencheur. Vous ne pouvez pas spécifier schema_name pour des déclencheurs DDL ou de connexion.
trigger_name
Nom du déclencheur à désactiver.
ALL
Indique que tous les déclencheurs définis sur l'étendue de la clause ON sont désactivés.
Attention
SQL Server crée des déclencheurs dans des bases de données qui sont publiées pour la réplication de fusion. Le fait de spécifier ALL dans les bases de données publiées désactive ces déclencheurs, ce qui interrompt la réplication. Vérifiez que la base de données active n'est pas publiée pour la réplication de fusion avant de spécifier ALL.
object_name
Nom de la table ou de la vue sur laquelle le déclencheur DML trigger_name a été créé pour s’exécuter.
DATABASE
Pour un déclencheur DDL, indique que trigger_name a été créé ou modifié pour s’exécuter sur l’étendue de la base de données.
TOUS LES SERVEURS
S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures.
Pour un déclencheur DDL, indique que trigger_name a été créé ou modifié pour s’exécuter sur l’étendue du serveur. ALL SERVER s'applique également aux déclencheurs de connexion.
Notes
Cette option n'est pas disponible dans une base de données autonome.
Notes
Les déclencheurs sont activés par défaut lors de leur création. La désactivation d'un déclencheur ne le supprime pas. Le déclencheur existe toujours en tant qu'objet dans la base de données actuelle. Cependant, il ne se déclenche pas lorsque des instructions Transact-SQL sur lesquelles il a été programmé sont exécutées. Il est possible de réactiver des déclencheurs à l’aide de ENABLE TRIGGER. Il est également possible d’activer ou de désactiver les déclencheurs DML définis sur des tables au moyen de la commande ALTER TABLE.
Le fait de modifier le déclencheur à l’aide de l’instruction ALTER TRIGGER active le déclencheur.
Autorisations
Pour désactiver un déclencheur DML, un utilisateur doit avoir au minimum l'autorisation ALTER pour la table ou la vue sur laquelle le déclencheur a été créé.
La désactivation d'un déclencheur DDL avec une étendue de serveur (ON ALL SERVER) ou d'un déclencheur de connexion nécessite l'autorisation CONTROL SERVER sur le serveur. Pour désactiver un déclencheur DDL sur l'étendue d'une base de données (ON DATABASE), un utilisateur doit avoir au minimum l'autorisation ALTER ANY DATABASE DDL TRIGGER pour la base de données active.
Exemples
Les exemples de code de cet article utilisent les bases de données d'exemple AdventureWorks2025 ou AdventureWorksDW2025, que vous pouvez télécharger à partir de la page d'accueil Microsoft SQL Server Samples and Community Projects.
R : Désactivation d'un déclencheur DML sur une table
L'exemple suivant désactive le déclencheur uAddress créé sur la table Person.
DISABLE TRIGGER Person.uAddress ON Person.Address;
GO
B. Désactivation d'un déclencheur DDL
L'exemple suivant crée un déclencheur DDL safety sur l'étendue de la base de données, puis le désactive.
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK;
GO
DISABLE TRIGGER safety ON DATABASE;
GO
C. Désactivation de tous les déclencheurs définis sur la même étendue
L'exemple suivant montre la désactivation de tous les déclencheurs DDL créés dans l'étendue du serveur.
DISABLE Trigger ALL ON ALL SERVER;
GO
Voir aussi
ACTIVER LE DÉCLENCHEUR (Transact-SQL)
ALTER TRIGGER (Transact-SQL)
CRÉER UN DÉCLENCHEUR (Transact-SQL)
DÉCLENCHEUR DE CHUTE (Transact-SQL)
sys.triggers (Transact-SQL)