Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment renvoyer une liste d'événements déclencheurs dans SQL Server

Vous pouvez utiliser T-SQL pour renvoyer une liste d'événements déclencheurs dans une base de données dans SQL Server.

Vous pouvez le faire en utilisant sys.trigger_events . Cette vue du catalogue système renvoie une ligne pour chaque événement ou groupe d'événements sur lequel un déclencheur peut se déclencher.

Exemple 1 - Utilisation de base

Voici un exemple pour illustrer.

USE Test;
SELECT 
  object_id,
  OBJECT_NAME(object_id) AS [Trigger Name],
  type_desc
FROM sys.trigger_events;

Résultat :

+-------------+-------------------+-------------+
| object_id   | Trigger Name      | type_desc   |
|-------------+-------------------+-------------|
| 286624064   | t1_insert_trigger | INSERT      |
| 2034106287  | t6ins             | INSERT      |
+-------------+-------------------+-------------+

Dans ce cas, j'utilise le OBJECT_NAME() fonction pour obtenir le nom de chaque déclencheur à partir de son object_id .

Exemple 2 - Limitez-le à un déclencheur spécifique

Vous pouvez également utiliser OBJECT_NAME() pour filtrer les résultats sur un nom de déclencheur spécifique à l'aide d'un WHERE clause.

SELECT 
  object_id,
  OBJECT_NAME(object_id) AS [Trigger Name],
  type_desc
FROM sys.trigger_events
WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';

Résultat :

+-------------+-------------------+-------------+
| object_id   | Trigger Name      | type_desc   |
|-------------+-------------------+-------------|
| 286624064   | t1_insert_trigger | INSERT      |
+-------------+-------------------+-------------+

Exemple 3 - Renvoyer toutes les colonnes

Cet exemple renvoie toutes les colonnes de cette vue.

SELECT * 
FROM sys.trigger_events
WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';

Résultat (en utilisant la sortie verticale) :

object_id             | 286624064
type                  | 1
type_desc             | INSERT
is_first              | 0
is_last               | 0
event_group_type      | NULL
event_group_type_desc | NULL
is_trigger_event      | 1

Dans cet exemple, j'ai présenté les résultats en utilisant une sortie verticale afin que vous ne soyez pas obligé de faire défiler horizontalement.

Obtenir tous les types d'événements déclencheurs

Vous pouvez interroger la vue catalogue sys.trigger_event_types pour obtenir une liste de tous les types d'événements déclencheurs. Ce sont les événements ou groupes d'événements sur lesquels un déclencheur peut se déclencher.

Vous pouvez également exécuter une requête qui les répertorie hiérarchiquement.