Partager via


DROP TRIGGER (Transact-SQL)

Supprime un ou plusieurs déclencheurs DML, DDL ou de connexion de la base de données active.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
DROP TRIGGER schema_name.trigger_name [ ,...n ] [ ; ]

Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE or UPDATE statement (DDL Trigger)
DROP TRIGGER trigger_name [ ,...n ] 
ON { DATABASE | ALL SERVER } 
[ ; ]

Trigger on a LOGON event (Logon Trigger)

DROP TRIGGER trigger_name [ ,...n ] 
ON ALL SERVER 

Arguments

  • schema_name
    Nom du schéma auquel appartient un déclencheur DML. Les déclencheurs DML sont limités au schéma de la table ou à la vue sur laquelle ils sont créés. schema_name ne peut pas être spécifié pour des connexions DDL ou de connexion.
  • trigger_name
    Indique le nom du déclencheur à supprimer. Pour afficher la liste des déclencheurs existants, utilisez sys.triggers (Transact-SQL).
  • DATABASE
    Indique que l'étendue du déclencheur DDL s'applique à la base de données active. L'argument DATABASE doit être spécifié s'il a également été indiqué lors de la création ou de la modification du déclencheur.
  • ALL SERVER
    Indique que l'étendue du déclencheur DDL ou de connexion s'applique au serveur actif. L'argument ALL SERVER doit être spécifié s'il a également été indiqué lors de la création ou de la modification du déclencheur.

Notes

Vous pouvez éliminer un déclencheur DML en le supprimant ou en supprimant sa table. Lorsqu'une table est supprimée, tous les déclencheurs associés sont également supprimés.

Lorsqu'un déclencheur est supprimé, les informations le concernant sont supprimées des affichages catalogue sys.objects, sys.triggers et sys.sql_modules.

Il est possible de supprimer plusieurs déclencheurs DDL avec une seule instruction DROP TRIGGER, uniquement s'ils ont tous été créés à l'aide de clauses ON identiques.

Pour renommer un déclencheur, utilisez DROP TRIGGER et CREATE TRIGGER. Pour modifier la définition d'un déclencheur, utilisez ALTER TRIGGER.

Pour plus d'informations sur la définition des dépendances d'un déclencheur spécifique, consultez sp_depends (Transact-SQL) et sys.sql_dependencies (Transact-SQL).

Pour plus d'informations sur l'affichage du texte d'un déclencheur, consultez sp_helptext (Transact-SQL) et sys.sql_modules (Transact-SQL).

Pour plus d'informations sur l'affichage de la liste des déclencheurs existants, consultez sys.triggers (Transact-SQL) et sys.server_triggers.

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.

La suppression d'un déclencheur DDL défini avec une étendue de serveur (ON ALL SERVER) ou d'un déclencheur de connexion nécessite l'autorisation CONTROL SERVER sur le serveur. La suppression d'un déclencheur DDL défini avec une étendue de base de données (ON DATABASE) nécessite une autorisation ALTER ANY DATABASE DDL TRIGGER sur la base de données active.

Exemples

A. Suppression d'un déclencheur DML

L'exemple suivant supprime le déclencheur employee_insupd.

USE AdventureWorks;
GO
IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL
   DROP TRIGGER employee_insupd;
GO

B. Suppression d'un déclencheur DDL

L'exemple suivant supprime le déclencheur DDL safety.

ms173497.note(fr-fr,SQL.90).gifImportant :
Étant donné que les déclencheurs DDL ne sont pas compris dans l'étendue du schéma, et qu'ils n'apparaissent donc pas dans l'affichage catalogue sys.objects, la fonction OBJECT_ID ne peut pas être utilisée pour déterminer s'ils existent dans la base de données. Les objets qui ne sont pas compris dans l'étendue du schéma doivent être interrogés à l'aide de l'affichage catalogue approprié. Pour les déclencheurs DDL, utilisez sys.triggers.
USE AdventureWorks;
GO
IF EXISTS (SELECT * FROM sys.triggers
    WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety
ON DATABASE;
GO

Voir aussi

Référence

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.objects (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers
sys.server_trigger_events
sys.server_sql_modules
sys.server_assembly_modules (Transact-SQL)

Autres ressources

Obtention d'informations sur les déclencheurs DML
Obtention d'informations sur les déclencheurs DDL

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

12 décembre 2006

Nouveau contenu :
  • Ajout de la syntaxe et des autorisations sur les déclencheurs de connexion qui sont introduits dans Service Pack 2.