sql >> データベース >  >> RDS >> Sqlserver

SQLServerでトリガーイベントのリストを返す方法

    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カタログビューにクエリを実行して、すべてのトリガーイベントタイプのリストを取得できます。これらは、トリガーを起動できるイベントまたはイベントグループです。

    それらを階層的にリストするクエリを実行することもできます。


    1. AWS上のWindowsでのShareplex入門、パート2

    2. PostgreSQLのマルチテナンシーオプション

    3. (mysql、php)データを挿入する前にauto_incrementフィールド値を取得する方法は?

    4. CONCAT_WS()がPostgreSQLでどのように機能するか