Puoi usare sys.triggers
vista catalogo per restituire un elenco di trigger in un database in SQL Server.
Questa vista contiene una riga per ogni oggetto che è un trigger, con un tipo di TR o TA.
Esempio
Ecco un esempio di query su sys.triggers
:
SELECT * FROM sys.triggers;
Risultato (usando l'output verticale):
-[ RECORD 1 ]------------------------- name | trg_Books_UpdateModifiedDate object_id | 1669580986 parent_class | 1 parent_class_desc | OBJECT_OR_COLUMN parent_id | 1605580758 type | TR type_desc | SQL_TRIGGER create_date | 2020-08-16 00:35:09.880 modify_date | 2020-08-16 00:35:09.880 is_ms_shipped | 0 is_disabled | 0 is_not_for_replication | 0 is_instead_of_trigger | 0 (1 row affected)
In questo esempio ho utilizzato l'output verticale in modo da non dover scorrere lateralmente.
Nel mio caso, ho solo un trigger in questo database.
Se passo a un database diverso, ottengo i trigger in quel database. Se il database non contiene trigger, non ottengo risultati.
USE WideWorldImporters;
SELECT * FROM sys.triggers;
Risultato:
Commands completed successfully. (0 rows affected)
Trigger del server
Se devi restituire un elenco di trigger del server, usa sys.server_triggers
invece di sys.triggers
.
Quella vista restituisce tutti i trigger DDL a livello di server con tipo_oggetto di TR o TA.