希望有人可以帮助我。我有一个Visual Studio 2008 WinForms 我添加了本地数据缓存的应用程序。本地数据缓存是 通过SqlServerCE使用SDF文件并缓存SQL Server 2008 dbase 更改跟踪已启用。
这是有效的,我可以做双向同步等。
我遇到的问题是将数据插入到本地表中 已由VS巫师创建。当我尝试插入数据时 以编程方式或甚至通过VS接口(显示数据)我收到错误 声明 “重复的值无法插入唯一索引” ,因为 主键约束。
这些表有一个auto inc int主键,它看起来就像种子一样 被重置为一个。这不会发生在所有表中,但只有一个 少。
我有什么想法可以解决这个问题吗?
此致 亚当
答案 0 :(得分:0)
答案 1 :(得分:0)
我遇到了同样的问题,并用GUID替换了Int / auto-incremental值。对我有用。
答案 2 :(得分:0)
我遇到了同样的问题。我通过将每个表上的每个主键设为GUID
来修复它。这样,当在脱机环境中在客户端上创建记录,然后与服务器同步时,客户端/服务器主键之间不存在冲突。这也可以防止IDENTITY
归因于每个INSERT
自动递增到已存在的值的冲突。
如下面的屏幕截图所示,数据类型设置为nvarchar(50)
(它可以是任何类似字符串的数据类型),默认值设置为(newid())
,身份规范是设为No
。
SQL Server Management Studio中的GUID属性屏幕截图:
您可以从Microsoft's documentation详细了解GUID
数据类型,看看它们是否适合您的特定情况。