Supprimer ou désactiver les déclencheurs DML
Cette rubrique explique comment supprimer ou désactiver un déclencheur DML dans SQL Server 2012 à l'aide de SQL Server Management Studio ou de Transact-SQL.
Dans cette rubrique
Avant de commencer :
Recommandations
Sécurité
Pour supprimer ou désactiver un déclencheur DML à l'aide de :
SQL Server Management Studio
Transact-SQL
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. Il continue d'exister en tant qu'objet dans la base de données active. 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éé.
[Top]
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.
[Top]
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 AdventureWorks2012;
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 AdventureWorks2012;
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 AdventureWorks2012;
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 AdventureWorks2012;
GO
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
--Enable the trigger.
USE AdventureWorks2012;
GO
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
[Top]
Voir aussi
Référence
DISABLE TRIGGER (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)