同期中にトリガと制約の動作を制御する方法 (レプリケーション Transact-SQL プログラミング)

更新 : 2006 年 4 月 14 日

同期中、レプリケートされるテーブルでは、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 オプションを指定します。

参照

その他の技術情報

テーブルの作成と変更
NOT FOR REPLICATION を使用した制約、ID、およびトリガの制御

ヘルプおよび情報

SQL Server 2005 の参考資料の入手