È possibile utilizzare T-SQL per restituire un elenco di eventi trigger in un database in SQL Server.
Puoi farlo usando sys.trigger_events
. Questa vista del catalogo di sistema restituisce una riga per ogni evento o gruppo di eventi su cui può essere attivato un trigger.
Esempio 1 – Utilizzo di base
Ecco un esempio da dimostrare.
USE Test; SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_desc FROM sys.trigger_events;
Risultato:
+-------------+-------------------+-------------+ | object_id | Trigger Name | type_desc | |-------------+-------------------+-------------| | 286624064 | t1_insert_trigger | INSERT | | 2034106287 | t6ins | INSERT | +-------------+-------------------+-------------+
In questo caso sto usando OBJECT_NAME()
funzione per ottenere il nome di ogni trigger dal suo object_id
.
Esempio 2:restringerlo a un trigger specifico
Puoi anche usare OBJECT_NAME()
per filtrare i risultati in base a un nome trigger specifico utilizzando un WHERE
clausola.
SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_desc FROM sys.trigger_events WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';
Risultato:
+-------------+-------------------+-------------+ | object_id | Trigger Name | type_desc | |-------------+-------------------+-------------| | 286624064 | t1_insert_trigger | INSERT | +-------------+-------------------+-------------+
Esempio 3 – Restituisci tutte le colonne
Questo esempio restituisce tutte le colonne di questa vista.
SELECT * FROM sys.trigger_events WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';
Risultato (usando l'output verticale):
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 questo esempio ho presentato i risultati utilizzando l'output verticale in modo da non dover scorrere orizzontalmente.
Ottenere tutti i tipi di eventi trigger
È possibile interrogare la vista del catalogo sys.trigger_event_types per ottenere un elenco di tutti i tipi di eventi trigger. Questi sono gli eventi o i gruppi di eventi su cui può essere attivato un trigger.
Puoi anche eseguire una query che li elenchi gerarchicamente.