Supprimer ou désactiver les déclencheurs DML
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Cette rubrique décrit comment supprimer ou désactiver un déclencheur DML dans SQL Server en utilisant SQL Server Management Studio ou Transact-SQL.
Dans cette rubrique
Avant de commencer :
Pour supprimer ou désactiver un déclencheur DML à l'aide de :
Avant de commencer
Recommandations
La suppression d'un déclencheur entraîne sa suppression définitive de la base de données actuelle. La table et les données sur lesquelles il est basé ne sont pas affectées. La suppression d'une table supprime automatiquement les déclencheurs qui lui sont associés.
Un déclencheur est activé par défaut lors de sa 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. Il ne s'activera toutefois pas lors de l'exécution d'une instruction INSERT, UPDATE ou DELETE pour laquelle il avait été programmé. Tout déclencheur désactivé peut être à nouveau réactivé. Un déclencheur n'est pas recréé par son activation. Le déclencheur est activé de la même manière que lorsqu'il a été initialement créé.
Sécurité
autorisations
La suppression d'un déclencheur DML nécessite une autorisation ALTER sur la table ou la vue sur laquelle le déclencheur est défini.
Pour désactiver ou activer 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éé.
Utilisation de SQL Server Management Studio
Pour supprimer un déclencheur DML
Dans l’Explorateur d’objets, connectez-vous à une instance du moteur de base de données et développez-la.
Développez la base de données choisie, développez Tables, puis développez la table qui contient le déclencheur que vous souhaitez supprimer.
Développez Déclencheurs, cliquez avec le bouton droit sur le déclencheur à supprimer, puis cliquez sur Supprimer.
Dans la boîte de dialogue Supprimer un objet , vérifiez que le déclencheur correct est spécifié et cliquez sur OK.
Pour désactiver et activer un déclencheur DML
Dans l’Explorateur d’objets, connectez-vous à une instance du moteur de base de données et développez-la.
Développez la base de données choisie, développez Tables, puis développez la table qui contient le déclencheur que vous souhaitez désactiver.
Développez Déclencheurs, cliquez avec le bouton droit sur le déclencheur à désactiver, puis cliquez sur Désactiver.
Pour activer le déclencheur, cliquez sur Activer.
Utilisation de Transact-SQL
Pour supprimer un déclencheur DML
Connectez-vous au Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
Copiez et collez les exemples suivants dans la fenêtre de requête. Exécutez l'instruction CREATE TRIGGER pour créer le déclencheur
Sales.bonus_reminder
. Pour supprimer le déclencheur, exécutez l'instruction DROP TRIGGER .
--Create the trigger.
USE AdventureWorks2022;
GO
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL
DROP TRIGGER Sales.bonus_reminder;
GO
CREATE TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE
AS RAISERROR ('Notify Compensation', 16, 10);
GO
--Delete the trigger.
USE AdventureWorks2022;
GO
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL
DROP TRIGGER Sales.bonus_reminder;
GO
Pour désactiver et activer un déclencheur DML
Connectez-vous au Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
Copiez et collez les exemples suivants dans la fenêtre de requête. Exécutez l'instruction CREATE TRIGGER pour créer le déclencheur
Sales.bonus_reminder
. Pour désactiver et activer le déclencheur, exécutez les instructions DISABLE TRIGGER et ENABLE TRIGGER , respectivement.
--Create the trigger.
USE AdventureWorks2022;
GO
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL
DROP TRIGGER Sales.bonus_reminder;
GO
CREATE TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE
AS RAISERROR ('Notify Compensation', 16, 10);
GO
--Disable the trigger.
USE AdventureWorks2022;
GO
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
--Enable the trigger.
USE AdventureWorks2022;
GO
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
Voir aussi
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
Obtenir des informations sur les déclencheurs DML
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.server_trigger_events (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)