Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Geben Sie den Typ eines DML-Triggers für eine Tabelle in SQL Server zurück

In SQL Server können Sie die gespeicherte Prozedur sp_helptrigger verwenden, um den Typ oder die Typen von DML-Triggern zurückzugeben, die für die angegebene Tabelle für die aktuelle Datenbank definiert sind.

Diese gespeicherte Prozedur funktioniert nur bei DML-Triggern (nicht bei DDL-Triggern).

Syntax

Die offizielle Syntax lautet wie folgt:

sp_helptrigger [ @tabname = ] 'table'   
     [ , [ @triggertype = ] 'type' ]

Sie müssen den Tabellennamen als Argument angeben. Sie können ihm @tabname = voranstellen , aber dies ist optional.

Sie haben auch die Möglichkeit, einen Triggertyp anzugeben. Dies kann entweder INSERT sein , DELETE , oder UPDATE .

Beispiel 1 – Grundlegende Verwendung

Hier ist ein einfaches Beispiel zur Veranschaulichung.

EXEC sp_helptrigger 'dbo.t1';

Ergebnis:

+-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------+
| trigger_name      | trigger_owner   | isupdate   | isdelete   | isinsert   | isafter   | isinsteadof   | trigger_schema   |
|-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------|
| t1_insert_trigger | dbo             | 0          | 0          | 1          | 1         | 0             | dbo              |
+-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------+

Falls Sie Probleme haben, seitwärts zu scrollen, hier ist das Ergebnis noch einmal mit vertikaler Ausgabe:

trigger_name   | t1_insert_trigger
trigger_owner  | dbo
isupdate       | 0
isdelete       | 0
isinsert       | 1
isafter        | 1
isinsteadof    | 0
trigger_schema | dbo

Beispiel 2 – Geben Sie einen Typ an

In diesem Beispiel gebe ich auch den Typ an.

EXEC sp_helptrigger 'dbo.t1', 'INSERT';

Ergebnis (bei vertikaler Ausgabe):

trigger_name   | t1_insert_trigger
trigger_owner  | dbo
isupdate       | 0
isdelete       | 0
isinsert       | 1
isafter        | 1
isinsteadof    | 0
trigger_schema | dbo

In diesem Fall gab es einen solchen Auslöser.

Hier wird wieder ein anderer Typ verwendet.

EXEC sp_helptrigger 'dbo.t1', 'DELETE';

Ergebnis:

(0 rows affected)

In diesem Fall gab es kein DELETE Trigger auf dieser Tabelle.