Dans SQL Server, vous pouvez utiliser la procédure stockée sp_helptrigger pour renvoyer le ou les types de déclencheurs DML définis sur la table spécifiée pour la base de données actuelle.
Cette procédure stockée ne fonctionne que sur les déclencheurs DML (et non sur les déclencheurs DDL).
Syntaxe
La syntaxe officielle ressemble à ceci :
sp_helptrigger [ @tabname = ] 'table' [ , [ @triggertype = ] 'type' ]
Vous devez fournir le nom de la table comme argument. Vous pouvez le préfixer avec @tabname =
, mais ceci est facultatif.
Vous avez également la possibilité de spécifier un type de déclencheur. Cela peut être soit INSERT
, DELETE
, ou UPDATE
.
Exemple 1 - Utilisation de base
Voici un exemple simple pour illustrer.
EXEC sp_helptrigger 'dbo.t1';
Résultat :
+-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------+ | trigger_name | trigger_owner | isupdate | isdelete | isinsert | isafter | isinsteadof | trigger_schema | |-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------| | t1_insert_trigger | dbo | 0 | 0 | 1 | 1 | 0 | dbo | +-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------+
Si vous rencontrez des difficultés pour faire défiler latéralement, voici à nouveau le résultat en utilisant la sortie verticale :
trigger_name | t1_insert_trigger trigger_owner | dbo isupdate | 0 isdelete | 0 isinsert | 1 isafter | 1 isinsteadof | 0 trigger_schema | dbo
Exemple 2 - Spécifier un type
Dans cet exemple, je précise également le type.
EXEC sp_helptrigger 'dbo.t1', 'INSERT';
Résultat (en utilisant la sortie verticale) :
trigger_name | t1_insert_trigger trigger_owner | dbo isupdate | 0 isdelete | 0 isinsert | 1 isafter | 1 isinsteadof | 0 trigger_schema | dbo
Dans ce cas, il y avait un déclencheur de ce type.
Ici, il utilise à nouveau un type différent.
EXEC sp_helptrigger 'dbo.t1', 'DELETE';
Résultat :
(0 rows affected)
Dans ce cas, il n'y avait pas de DELETE
déclencheurs sur cette table.