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

So geben Sie eine Liste von Triggerereignissen in SQL Server zurück

Sie können T-SQL verwenden, um eine Liste von Triggerereignissen in einer Datenbank in SQL Server zurückzugeben.

Sie können dies mit sys.trigger_events tun . Diese Systemkatalogansicht gibt eine Zeile für jedes Ereignis oder jede Ereignisgruppe zurück, bei der ein Trigger ausgelöst werden kann.

Beispiel 1 – Grundlegende Verwendung

Hier ist ein Beispiel zur Veranschaulichung.

USE Test;
SELECT 
  object_id,
  OBJECT_NAME(object_id) AS [Trigger Name],
  type_desc
FROM sys.trigger_events;

Ergebnis:

+-------------+-------------------+-------------+
| object_id   | Trigger Name      | type_desc   |
|-------------+-------------------+-------------|
| 286624064   | t1_insert_trigger | INSERT      |
| 2034106287  | t6ins             | INSERT      |
+-------------+-------------------+-------------+

In diesem Fall verwende ich das OBJECT_NAME() Funktion, um den Namen jedes Triggers aus seiner object_id zu erhalten .

Beispiel 2 – Auf einen bestimmten Auslöser eingrenzen

Sie können auch OBJECT_NAME() verwenden um die Ergebnisse mit einem WHERE auf einen bestimmten Triggernamen zu filtern Klausel.

SELECT 
  object_id,
  OBJECT_NAME(object_id) AS [Trigger Name],
  type_desc
FROM sys.trigger_events
WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';

Ergebnis:

+-------------+-------------------+-------------+
| object_id   | Trigger Name      | type_desc   |
|-------------+-------------------+-------------|
| 286624064   | t1_insert_trigger | INSERT      |
+-------------+-------------------+-------------+

Beispiel 3 – Alle Spalten zurückgeben

Dieses Beispiel gibt alle Spalten aus dieser Ansicht zurück.

SELECT * 
FROM sys.trigger_events
WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';

Ergebnis (bei vertikaler Ausgabe):

object_id             | 286624064
type                  | 1
type_desc             | INSERT
is_first              | 0
is_last               | 0
event_group_type      | NULL
event_group_type_desc | NULL
is_trigger_event      | 1

In diesem Beispiel habe ich die Ergebnisse mit vertikaler Ausgabe dargestellt, damit Sie nicht gezwungen sind, horizontal zu scrollen.

Alle Trigger-Ereignistypen abrufen

Sie können die Katalogansicht sys.trigger_event_types abfragen, um eine Liste aller Auslöserereignistypen zu erhalten. Dies sind die Ereignisse oder Ereignisgruppen, bei denen ein Trigger ausgelöst werden kann.

Sie können auch eine Abfrage ausführen, die sie hierarchisch auflistet.