Du kan bruge T-SQL til at returnere en liste over triggerhændelser i en database i SQL Server.
Du kan gøre dette ved at bruge sys.trigger_events
. Denne systemkatalogvisning returnerer en række for hver hændelse eller hændelsesgruppe, hvorpå en trigger kan udløses.
Eksempel 1 – Grundlæggende brug
Her er et eksempel til at demonstrere.
USE Test;SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_descFROM sys.trigger_events;
Resultat:
+-------------+--------------------+------------ -+| objekt-id | Triggernavn | type_desc ||-------------+--------------------+---------------- || 286624064 | t1_insert_trigger | INDSÆT || 2034106287 | t6ins | INDSÆT |+-------------+---------------------+---------------- +
I dette tilfælde bruger jeg OBJECT_NAME()
funktion for at hente hver triggers navn fra dens object_id
.
Eksempel 2 – Indsnævre det til en specifik trigger
Du kan også bruge OBJECT_NAME()
at filtrere resultaterne til et specifikt udløsernavn ved hjælp af en WHERE
klausul.
SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_descFROM sys.trigger_eventsWHERE OBJECT_NAME(object_id) ='t1_insert_trigger';
Resultat:
+-------------+--------------------+------------ -+| objekt-id | Triggernavn | type_desc ||-------------+--------------------+---------------- || 286624064 | t1_insert_trigger | INDSÆT |+-------------+---------------------+---------------- +
Eksempel 3 – Returner alle kolonner
Dette eksempel returnerer alle kolonner fra denne visning.
SELECT * FROM sys.trigger_eventsWHERE OBJECT_NAME(object_id) ='t1_insert_trigger';
Resultat (ved hjælp af lodret output):
I dette eksempel præsenterede jeg resultaterne ved hjælp af lodret output, så du ikke tvinges til at rulle vandret.
Hent alle triggerhændelsestyper
Du kan forespørge i sys.trigger_event_types-katalogvisningen for at få en liste over alle triggerhændelsestyper. Dette er de begivenheder eller begivenhedsgrupper, som en trigger kan udløses på.
Du kan også køre en forespørgsel, der viser dem hierarkisk.