SQL Server 2008 Sync - 如何使用新主键重新插入冲突的pk行
-
05-07-2019 - |
题
有人能指出我使用Sync Framework在c#.net中处理PK冲突错误的正确方向。
我正在尝试在sql server 2008和本地数据缓存数据库(.sdf)之间进行同步,并希望保留服务器和客户端中存在冲突的BOTH行,并且不允许服务器或客户端获胜?
当我向服务器和客户端插入具有相同PK ID的新行时,我收到pk冲突错误。
任何建议都会感激不尽。
由于
解决方案 2
这是通过使用PK的GUID而不是自动递增int来解决的。
这可以保证服务器或任何客户端插入的每一行都是唯一的,并且运行良好。
存在一些缺点,例如额外的存储空间和搜索等所需的时间,但这是我愿意接受的(我将过滤客户端获得的数据,这将有助于提高性能)。
感谢大家的帮助。
其他提示
此类问题的一般原则是为自然键设置一列。这个想法是主键唯一地标识表中的行,而自然键唯一地标识该行描述的对象。如果发生冲突,请让服务器获胜并在客户端插入新行。将发布新PK,但自然键保持不变。稍后通过自然键排序很容易找到这些行。
不隶属于 StackOverflow