同期のトリガーと制約の動作を制御する

適用対象: SQL ServerAzure SQL Managed Instance

同期中、レプリケートされるテーブルでは、INSERT (Transact-SQL)UPDATE (Transact-SQL)DELETE (Transact-SQL) の各ステートメントがレプリケーション エージェントによって実行され、これらのテーブルに対して設定されていたデータ操作言語 (DML) のトリガーが実行されます。 同期中はこれらのトリガーが起動しないようにしたり、制約が適用されないようにすることが必要になる場合があります。 このときの動作は、トリガーまたは制約がどのように作成されたかによって異なります。

同期中にトリガーが実行されないようにするには

  1. 新しいトリガーを作成する場合は、CREATE TRIGGER (Transact-SQL) の NOT FOR REPLICATION オプションを指定します。

  2. 既存のトリガーの場合は、ALTER TRIGGER (Transact-SQL) の NOT FOR REPLICATION オプションを指定します。

同期中に制約が適用されないようにするには

  1. CHECK 制約または FOREIGN KEY 制約を新たに作成する場合は、 CREATE TABLE (Transact-SQL) の制約定義で、CHECK NOT FOR REPLICATION オプションを指定します。

参照

テーブルの作成 (データベース エンジン)