我的数据库中有一个联结/多对多表。该表有 2 列组成一个复合主键;用户 ID 和组 ID。
我遇到的问题是,一旦删除一行,就再也无法重新添加和同步它。例如:
- 用户 123 添加到组 456 更改已同步,上传 方向。行被添加到远程。
- 用户 123 从组 456 中删除(行在表元中被删除,行从基表中删除)
- 更改同步,上传方向。远程删除行
- 用户 123 添加到组 456
- 更改已同步,上传 方向。行未插入远程。
我猜范围知识保留了该行曾经被删除并且不同步更改的事实?这种理解是否正确?有没有办法清除这些知识?
最佳答案
如果任何键列都设置了 IDENTITY
属性,那么您不能简单地在此类列中插入值。您应该明智地使用此属性 - 它的想法是确保 key 永远不会重复。
因此,如果您确实需要将值插入到 IDENTITY
列中,请使用 SET IDENTITY_INSERT MyTable ON/OFF
。数据库中只有一个表可以将此属性设置为 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
关于sql-server - 如何同步以前删除的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13369589/