0

Employee と Location の 2 つのテーブルを考えてみましょう。

従業員

EmpId 名前 LocationId

xxx XYZ yyy
xxx ABC zzz

位置

LocationId 場所

yyyインド
xxx米国

EmpId と LocationId は、 type の主キー列ですuniqueidentifier。Employee テーブルの LocationId は、Location テーブルを参照する外部キーです。また、Location テーブルの location 列に一意の制約があるとします。

ステップ 1: クライアントとサーバー間で同期します。これでデータが更新されました。

ステップ 2: サーバーとクライアントの両方で、値が「フランス」の新しい行をロケーション テーブルに追加します。また、この新しい行を参照して、employee テーブルに新しい行を追加します。

ステップ 3: 同期します。一意の制約に違反しているため、失敗します。'France' 行はクライアントとサーバーの両方に異なる主キーで存在し、同期フレームワークが新しい行を挿入しようとすると、一意の制約によって挿入が妨げられ、同期が失敗します。

競合する行のクライアントの locationid をサーバーの locationid に更新することで、この問題を解決する必要があります。イベントで更新するコードを記述しようとしましたがdbapplychangefailed、同期フレームワークが競合する行をロックし、アクセスできません。

主キー以外の列に対する一意の制約は私の主な問題であり、その問題の解決策を得ることができれば、このシナリオでそれを実装できます。

お知らせ下さい。前もって感謝します。

4

0 に答える 0