如何同步以前删除的行

时间:2012-11-13 22:00:25

标签: sql-server database microsoft-sync-framework

我的数据库中有一个联结/多对多表。该表有2列形成复合主键;用户ID和GROUPID。

我遇到的问题是,一旦删除一行,就永远无法重新添加并再次同步。例如:

  1. 将用户123添加到组456更改同步,上传 方向。行被添加到远程。
  2. 用户123从组456中删除(在表meta中删除逻辑行并从基表中删除行)
  3. 更改同步,上传方向。在远程
  4. 上删除了行
  5. 用户123被添加到组456
  6. 更改已同步,上传 方向。行未插入远程。
  7. 我猜测范围知识保留了一行被删除而不同步更改的事实?这种理解是否正确?无论如何要清理这些知识吗?

1 个答案:

答案 0 :(得分:0)

如果任何键列都设置了IDENTITY属性,那么您不能简单地在此列中插入值。您应该明智地使用此属性 - 它的目的是确保密钥永远不会重复。

因此,如果您确实需要将值插入IDENTITY列,请使用SET IDENTITY_INSERT MyTable ON/OFF。 db中只有一个表可以将此属性设置为ON。如果它关闭 - 发生错误。

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