サーバー構成: 入れ子になったトリガー

適用対象: SQL Server

この記事では、SQL Server Management Studio または Transact-SQL を nested triggers 使用して SQL Server のサーバー構成オプションを構成する方法について説明します。 このオプションは nested triggers 、トリガーが AFTER カスケードできるかどうかを制御します。 つまり、1 つの操作が別のトリガーを開始し、開始されたトリガーからさらに別のトリガーを開始するなどの動作ができるかどうかを制御します。 に0設定されている場合nested triggersAFTERトリガーはカスケードできません。 (既定値) に1設定するとnested triggersAFTERトリガーは 32 レベルまでカスケードできます。 INSTEAD OF トリガーは、このオプションの設定に関係なく入れ子にすることができます。

アクセス許可

パラメーターなしで、または最初のパラメーターだけを指定して sp_configure を実行する権限は、既定ですべてのユーザーに付与されます。 両方のパラメーターを指定して sp_configure を実行し構成オプションを変更したり RECONFIGURE ステートメントを実行したりするには、ALTER SETTINGS サーバーレベル権限がユーザーに付与されている必要があります。 ALTER SETTINGS 権限は、sysadmin 固定サーバー ロールと serveradmin 固定サーバー ロールでは暗黙のうちに付与されています。

SQL Server Management Studio を使用します。

  1. オブジェクト エクスプローラーで、サーバーを右クリックし、 [プロパティ] を選択します。

  2. [詳細設定] ページで、 [トリガーから他のトリガーの起動を許可する] オプションを [True] (既定) または [False] に設定します。

Transact-SQL の使用

  1. データベース エンジンに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、 sp_configure を使用して、 nested triggers オプションの値を 0に設定する方法を示します。

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'nested triggers', 0;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

詳しくは、「サーバー構成オプション」をご覧ください。

補足情報: 入れ子になったトリガー オプションを構成した後

新しい設定は、サーバーを再起動しなくてもすぐに有効になります。