マージ アーティクルに対して削除を追跡しないように指定する (レプリケーション Transact-SQL プログラミング)
注 |
---|
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。 |
既定では、マージ レプリケーションではパブリッシャーとサブスクライバーの DELETE コマンドが同期されます。 マージ レプリケーションを使用すると、行がパブリケーションから削除されても、サブスクリプション データベースでその行を保持できます。その逆の操作も可能です。 新しいアーティクルを作成するときに DELETE コマンドを無視するようにプログラムで指定したり、レプリケーション ストアド プロシージャを使用してこの機能を後で有効にすることができます。
重要 |
---|
この機能を有効にすると、データが収束しなくなります。つまり、サブスクライバーに存在するデータにパブリッシャーのデータが正確に反映されなくなります。 削除された行を手動で削除するためのメカニズムを独自に実装する必要があります。 |
新しいマージ アーティクルで削除を無視するように指定するには
パブリッシャー側のパブリケーション データベースに対して、sp_addmergearticle (Transact-SQL) を実行します。 @delete_tracking に false を指定します。 詳細については、「アーティクルの定義」を参照してください。
注 アーティクルのソース テーブルが別のパブリケーションで既にパブリッシュされている場合、両方のアーティクルで delete_tracking の値を同じにする必要があります。
既存のマージ アーティクルで削除を無視するように指定するには
アーティクルでエラー補正が有効になっているかどうかを確認するために、sp_helpmergearticle (Transact-SQL) を実行して、結果セット内の delete_tracking の値を確認します。 値が 0 の場合、削除は既に無視されています。
手順 1. で得た値が 1 だった場合、パブリッシャー側のパブリケーション データベースに対して sp_changemergearticle (Transact-SQL) を実行します。 @property に delete_tracking の値を指定し、@value に false を指定します。
注 アーティクルのソース テーブルが別のパブリケーションで既にパブリッシュされている場合、両方のアーティクルで delete_tracking の値を同じにする必要があります。