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

適用対象: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 オプションを指定します。