sql-server - 如何同步以前删除的行

标签 sql-server database microsoft-sync-framework

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

我遇到的问题是,一旦删除一行,就再也无法重新添加和同步它。例如:

  1. 用户 123 添加到组 456 更改已同步,上传 方向。行被添加到远程。
  2. 用户 123 从组 456 中删除(行在表元中被删除,行从基表中删除)
  3. 更改同步,上传方向。远程删除行
  4. 用户 123 添加到组 456
  5. 更改已同步,上传 方向。行未插入远程。

我猜范围知识保留了该行曾经被删除并且不同步更改的事实?这种理解是否正确?有没有办法清除这些知识?

最佳答案

如果任何键列都设置了 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/

相关文章:

mysql - Smarty 3 多语言插件

nhibernate - NHibernate 与 Microsoft Sync Framework 能很好地集成吗?

c# - 不存在从 DbType System.DateTimeOffset 到已知 SqlCeType 的映射

SQL Server 将标识符传递给存储过程/动态 SQL

sql-server - 将两个 select 语句组合成 where 子句

django - Feed算法+数据库: Either too many rows or too slow retrieval

javascript - 获取 Firestore 数据库额外数组的值

sql - 用户定义的函数 SQL Server 2005 被错误地标记为非确定性?

ruby-on-rails - 运行 rspec 的不同机器上规范的数组顺序不同

visual-studio-2010 - 同步文件更改同步时的文件