0

マージ レプリケーションを使用すると、ほとんどの部分が正常に同期されるテーブルがあります。ただし、テーブルには 1 つの列が含まれており、一時的なクライアント側のデータを格納するために使用されます。このデータは、クライアントでのみ意味のある編集および使用が行われ、サーバーに複製する必要はありません。例えば:

CREATE TABLE MyTable (
    ID           UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,
    Name         NVARCHAR(200),
    ClientCode   NVARCHAR(100)
)

この場合、サブスクライバーがテーブルの ClientCode 列を変更しても、それらの変更がサーバーに返されることは望ましくありません。マージ レプリケーションは、これを達成するための手段を提供していますか?

私がフォールバックする可能性のある別のアプローチは、追加のテーブルを公開し、それを「サブスクライバーにはダウンロードのみ、サブスクライバーの変更を許可する」ように構成し、そのテーブルで MyTable.ID を ClientCode と共に参照することです。 . ただし、絶対に必要でない場合は、追加のテーブルを公開する必要はありません。

ありがとう、

-ダン

4

1 に答える 1

0

はい、出版物に記事を作成するときは、この列を含めないでください。次に、この列をテーブルに追加するスクリプトを作成し、パブリケーションプロパティの[スナップショット]で、スナップショットが適用された後にこのスクリプトを実行するように指定します。

これは、列がパブリッシャーとサブスクライバーの両方に存在するが、レプリケーションによって完全に無視されることを意味します。もちろん、この手法を使用できるのは、無視する列がnull許容の場合のみです。

于 2012-02-23T14:29:14.777 に答える