Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Restituisce un elenco di trigger in SQL Server

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.