Partager via


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éé.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de SQL Server Management Studio

Pour supprimer un déclencheur DML

  1. Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données et développez-la.

  2. 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.

  3. Développez Déclencheurs, cliquez avec le bouton droit sur le déclencheur à supprimer, puis cliquez sur Supprimer.

  4. 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

  1. Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données et développez-la.

  2. 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.

  3. Développez Déclencheurs, cliquez avec le bouton droit sur le déclencheur à désactiver, puis cliquez sur Désactiver.

  4. Pour activer le déclencheur, cliquez sur Activer.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de Transact-SQL

Pour supprimer un déclencheur DML

  1. Connectez-vous au Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. 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

  1. Connectez-vous au Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. 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

Icône de flèche utilisée avec le lien Retour en haut[Top]

Voir aussi

Référence

ALTER TRIGGER (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

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)

Concepts

Obtenir des informations sur les déclencheurs DML