Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Renvoyer un type de déclencheur DML sur une table dans SQL Server

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.