3

データベースにジャンクション/多対多テーブルがあります。このテーブルには、複合主キーを形成する 2 つの列があります。ユーザー ID とグループ ID。

行が削除されると、再度追加して再度同期することができないという問題があります。例えば:

  1. ユーザー 123 がグループ 456 に追加され、同期、アップロード方向が変更されます。行がリモートに追加されます。
  2. ユーザー 123 がグループ 456 から削除されました (テーブル メタで行が廃棄され、ベース テーブルから行が削除されました)
  3. 変更同期、アップロード方向。行はリモートで削除されます
  4. ユーザー 123 がグループ 456 に追加されます
  5. 変更同期、アップロード方向。行はリモートに挿入されません。

スコープの知識は、行が一度削除され、変更を同期していないという事実を保持していると思いますか? この理解は正しいでしょうか?この知識をきれいにする方法はありますか?

4

1 に答える 1

0

キー列のいずれかにIDENTITYプロパティが設定されている場合、その列に値を単純に挿入することはできません。このプロパティは賢明に使用する必要があります。これは、キーが繰り返されないようにするためのものです。

IDENTITYしたがって、列に値を挿入する必要がある場合は、SET IDENTITY_INSERT MyTable ON/OFF. このプロパティを ON に設定できるのは、データベース内の 1 つのテーブルだけです。オフの場合 - エラーが発生します。

CREATE TABLE MyTable (ID INT IDENTITY NOT NULL)
SET IDENTITY_INSERT MyTable ON/OFF
INSERT INTO MyTable VALUES (2)
SET IDENTITY_INSERT MyTable ON/OFF
于 2013-05-28T20:32:18.997 に答える