Du kan använda T-SQL för att returnera en lista över triggerhändelser i en databas i SQL Server.
Du kan göra detta med sys.trigger_events
. Denna systemkatalogvy returnerar en rad för varje händelse eller händelsegrupp som en utlösare kan aktiveras på.
Exempel 1 – Grundläggande användning
Här är ett exempel att visa.
USE Test; SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_desc FROM sys.trigger_events;
Resultat:
+-------------+-------------------+-------------+ | object_id | Trigger Name | type_desc | |-------------+-------------------+-------------| | 286624064 | t1_insert_trigger | INSERT | | 2034106287 | t6ins | INSERT | +-------------+-------------------+-------------+
I det här fallet använder jag OBJECT_NAME()
funktion för att hämta varje triggers namn från dess object_id
.
Exempel 2 – Begränsa den till en specifik trigger
Du kan också använda OBJECT_NAME()
för att filtrera resultaten till ett specifikt triggernamn med en WHERE
klausul.
SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_desc FROM sys.trigger_events WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';
Resultat:
+-------------+-------------------+-------------+ | object_id | Trigger Name | type_desc | |-------------+-------------------+-------------| | 286624064 | t1_insert_trigger | INSERT | +-------------+-------------------+-------------+
Exempel 3 – Returnera alla kolumner
Det här exemplet returnerar alla kolumner från den här vyn.
SELECT * FROM sys.trigger_events WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';
Resultat (med vertikal utdata):
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
I det här exemplet presenterade jag resultaten med vertikal utdata så att du inte tvingas rulla horisontellt.
Hämta alla triggerhändelsetyper
Du kan fråga katalogvyn sys.trigger_event_types för att få en lista över alla triggerhändelsetyper. Det här är de händelser eller händelsegrupper som en utlösare kan aktiveras på.
Du kan också köra en fråga som listar dem hierarkiskt.