Puede usar sys.triggers
vista de catálogo para devolver una lista de disparadores en una base de datos en SQL Server.
Esta vista contiene una fila para cada objeto que es un disparador, con un tipo de TR o TA.
Ejemplo
Aquí hay un ejemplo de consulta sys.triggers
:
SELECT * FROM sys.triggers;
Resultado (usando salida vertical):
-[ 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)
Usé la salida vertical en este ejemplo para que no tengas que desplazarte hacia los lados.
En mi caso, solo tengo un activador en esta base de datos.
Si cambio a una base de datos diferente, obtengo los disparadores en esa base de datos. Si la base de datos no contiene activadores, no obtengo resultados.
USE WideWorldImporters;
SELECT * FROM sys.triggers;
Resultado:
Commands completed successfully. (0 rows affected)
Activadores del servidor
Si necesita devolver una lista de disparadores de servidor, use sys.server_triggers
en lugar de sys.triggers
.
Esa vista devuelve todos los activadores DDL a nivel de servidor con object_type de TR o TA.