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

SQLServerのテーブルでDMLトリガーのタイプを返す

    SQL Serverでは、sp_helptriggerストアドプロシージャを使用して、現在のデータベースの指定されたテーブルで定義されている1つまたは複数のDMLトリガーのタイプを返すことができます。

    このストアドプロシージャは、DMLトリガーでのみ機能します(DDLトリガーでは機能しません)。

    構文

    公式の構文は次のようになります:

    sp_helptrigger [ @tabname = ] 'table'   
         [ , [ @triggertype = ] 'type' ]
    

    テーブル名を引数として指定する必要があります。プレフィックスとして@tabname = を付けることができます 、ただしこれはオプションです。

    トリガータイプを指定するオプションもあります。これは、INSERTのいずれかです。 、DELETE 、またはUPDATE

    例1-基本的な使用法

    簡単な例を次に示します。

    EXEC sp_helptrigger 'dbo.t1';
    

    結果:

    +-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------+
    | trigger_name      | trigger_owner   | isupdate   | isdelete   | isinsert   | isafter   | isinsteadof   | trigger_schema   |
    |-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------|
    | t1_insert_trigger | dbo             | 0          | 0          | 1          | 1         | 0             | dbo              |
    +-------------------+-----------------+------------+------------+------------+-----------+---------------+------------------+
    

    横方向のスクロールに問題がある場合は、垂直出力を使用した結果を次に示します。

    trigger_name   | t1_insert_trigger
    trigger_owner  | dbo
    isupdate       | 0
    isdelete       | 0
    isinsert       | 1
    isafter        | 1
    isinsteadof    | 0
    trigger_schema | dbo
    

    例2–タイプを指定する

    この例では、タイプも指定します。

    EXEC sp_helptrigger 'dbo.t1', 'INSERT';
    

    結果(垂直出力を使用):

    trigger_name   | t1_insert_trigger
    trigger_owner  | dbo
    isupdate       | 0
    isdelete       | 0
    isinsert       | 1
    isafter        | 1
    isinsteadof    | 0
    trigger_schema | dbo
    

    この場合、そのタイプのトリガーがありました。

    ここでも別のタイプを使用しています。

    EXEC sp_helptrigger 'dbo.t1', 'DELETE';
    

    結果:

    (0 rows affected)
    

    この場合、DELETEはありませんでした そのテーブルでトリガーします。


    1. SQL Serverでのテーブルパーティションの切り替え:ウォークスルー

    2. MariaDBの日付から月の名前を取得する3つの方法

    3. PostgresはHerokuProductionDBをローカル開発DBにコピーします

    4. SQLServer2019の新機能