マージ アーティクルに競合の追跡と解決のレベルを指定する方法 (レプリケーション Transact-SQL プログラミング)
マージ パブリケーションへのサブスクリプションを同期する際、パブリッシャとサブスクライバの同じデータに加えられた変更によって、競合が発生していないかどうかがレプリケーション時に確認されます。競合を行レベルで検出するか (行に加えられたすべての変更が競合と見なされます)、列レベルで検出するか (同じ行と列に対する変更のみが競合と見なされます) を指定できます。アーティクルの競合解決は行レベルで実行されます。論理レコードが使用される場合の競合の検出と解決の詳細については、「論理レコードの競合の検出および解決」を参照してください。アーティクルを作成するときと、アーティクルが定義された後に競合を追跡する方法をプログラムで指定できます。
新しいマージ アーティクルの競合追跡オプションを指定するには
パブリッシャのパブリケーション データベースに対して、sp_addmergearticle を実行し、次のいずれかの値を @column_tracking に指定します。
true - アーティクルに対して列レベルの追跡を使用します。
false - 既定の行レベルの追跡を使用します。
マージ アーティクルの競合追跡オプションを変更するには
マージ アーティクルの競合追跡オプションを定義するには、sp_helpmergearticle を実行します。アーティクルの結果セットの column_tracking オプションの値を調べます。値 1 は、列レベルの追跡が使用されていることを示します。値 0 は、行レベルの追跡が使用されていることを示します。
パブリッシャのパブリケーション データベースに対して、sp_changemergearticle を実行します。@property に column_tracking の値を指定し、@value に次のいずれかの値を指定します。
true - アーティクルに対して列レベルの追跡を使用します。
false - 既定の行レベルの追跡を使用します。
@force_invalidate_snapshot および @force_reinit_subscription に 1 を指定します。