sql >> Base de Datos >  >> RDS >> Sqlserver

Devolver una lista de disparadores en SQL Server

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.