マージ アーティクルに対して削除を追跡しないように指定する方法 (レプリケーション Transact-SQL プログラミング)

注意

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。

既定では、マージ レプリケーションではパブリッシャとサブスクライバの DELETE コマンドが同期されます。マージ レプリケーションを使用すると、行がパブリケーションから削除されても、サブスクリプション データベースでその行を保持できます。その逆の操作も可能です。新しいアーティクルを作成するときに DELETE コマンドを無視するようにプログラムで指定したり、レプリケーション ストアド プロシージャを使用してこの機能を後で有効にすることができます。

重要な注意事項重要

この機能を有効にすると、データが収束しなくなります。つまり、サブスクライバに存在するデータにパブリッシャのデータが正確に反映されなくなります。削除された行を手動で削除するためのメカニズムを独自に実装する必要があります。

新しいマージ アーティクルで削除を無視するように指定するには

既存のマージ アーティクルで削除を無視するように指定するには

  1. アーティクルでエラー補正が有効になっているかどうかを確認するために、sp_helpmergearticle (Transact-SQL) を実行して、結果セット内の delete_tracking の値を確認します。値が 0 の場合、削除は既に無視されています。

  2. 手順 1. で得た値が 1 だった場合、パブリッシャ側のパブリケーション データベースに対して sp_changemergearticle (Transact-SQL) を実行します。@propertydelete_tracking の値を指定し、@value に false を指定します。

    注意

    アーティクルのソース テーブルが別のパブリケーションで既にパブリッシュされている場合、両方のアーティクルで delete_tracking の値を同じにする必要があります。