T-SQLを使用して、SQLServerのデータベース内のトリガーイベントのリストを返すことができます。
これは、sys.trigger_events
を使用して行うことができます 。このシステムカタログビューは、トリガーを起動できる各イベントまたはイベントグループの行を返します。
例1-基本的な使用法
実例を示します。
USE Test; SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_desc FROM sys.trigger_events;
結果:
+-------------+-------------------+-------------+ | object_id | Trigger Name | type_desc | |-------------+-------------------+-------------| | 286624064 | t1_insert_trigger | INSERT | | 2034106287 | t6ins | INSERT | +-------------+-------------------+-------------+
この場合、私はOBJECT_NAME()
を使用しています object_id
から各トリガーの名前を取得する関数 。
例2–特定のトリガーに絞り込む
OBJECT_NAME()
を使用することもできます WHERE
を使用して、結果を特定のトリガー名にフィルタリングします 条項。
SELECT object_id, OBJECT_NAME(object_id) AS [Trigger Name], type_desc FROM sys.trigger_events WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';
結果:
+-------------+-------------------+-------------+ | object_id | Trigger Name | type_desc | |-------------+-------------------+-------------| | 286624064 | t1_insert_trigger | INSERT | +-------------+-------------------+-------------+
例3–すべての列を返す
この例では、このビューからすべての列が返されます。
SELECT * FROM sys.trigger_events WHERE OBJECT_NAME(object_id) = 't1_insert_trigger';
結果(垂直出力を使用):
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
この例では、水平方向に強制的にスクロールしないように、垂直方向の出力を使用して結果を示しました。
すべてのトリガーイベントタイプの取得
sys.trigger_event_typesカタログビューにクエリを実行して、すべてのトリガーイベントタイプのリストを取得できます。これらは、トリガーを起動できるイベントまたはイベントグループです。
それらを階層的にリストするクエリを実行することもできます。