Si vous préférez administrer vos bases de données SQL Server en exécutant des requêtes T-SQL, au lieu d'utiliser l'interface graphique, voici deux options pour répertorier tous les déclencheurs dans la base de données actuelle.
Option 1 - La vue du catalogue sys.triggers
Vous pouvez utiliser le sys.triggers
vue du catalogue système pour obtenir une liste de tous les déclencheurs d'une base de données.
USE Test; SELECT name, OBJECT_NAME(parent_id) AS parent, type, type_desc FROM sys.triggers;
Résultat :
+-------------------+----------+--------+-------------+ | name | parent | type | type_desc | |-------------------+----------+--------+-------------| | t1_insert_trigger | t1 | TR | SQL_TRIGGER | | t6ins | t6 | TR | SQL_TRIGGER | +-------------------+----------+--------+-------------+
Cette vue renvoie tous les déclencheurs de type TR (déclencheur SQL DML) ou TA (déclencheur Assembly (CLR) DML). Elle renvoie à la fois les noms des déclencheurs DML et les noms des déclencheurs DDL (contrairement à l'option suivante, qui ne renvoie que les déclencheurs DML).
Option 2 - La vue du catalogue sys.objects
Vous pouvez également utiliser le sys.objects
vue du catalogue système pour obtenir une liste des déclencheurs.
USE Test; SELECT SCHEMA_NAME(schema_id) AS [schema], name, OBJECT_NAME(parent_object_id) AS parent, type, type_desc FROM sys.objects WHERE type IN ('TR', 'TA');
Résultat :
+----------+-------------------+----------+--------+-------------+ | schema | name | parent | type | type_desc | |----------+-------------------+----------+--------+-------------| | dbo | t1_insert_trigger | t1 | TR | SQL_TRIGGER | | dbo | t6ins | t6 | TR | SQL_TRIGGER | +----------+-------------------+----------+--------+-------------+
Notez que sys.objects
répertorie uniquement les déclencheurs DML et non les déclencheurs DDL.
C'est parce que sys.objects
ne renvoie que des objets de portée de schéma. Les noms de déclencheur DML sont limités au schéma, mais les noms de déclencheur DDL sont définis par l'entité parent. Si vous devez renvoyer des déclencheurs DDL, utilisez sys.triggers
.