SQLServerCE /本地数据缓存/同步框架 - 插入错误

时间:2009-06-09 13:09:32

标签: c# sql-server sql-server-ce microsoft-sync-framework

希望有人可以帮助我。我有一个Visual Studio 2008 WinForms 我添加了本地数据缓存的应用程序。本地数据缓存是 通过SqlServerCE使用SDF文件并缓存SQL Server 2008 dbase 更改跟踪已启用。

这是有效的,我可以做双向同步等。

我遇到的问题是将数据插入到本地表中 已由VS巫师创建。当我尝试插入数据时 以编程方式或甚至通过VS接口(显示数据)我收到错误 声明 “重复的值无法插入唯一索引” ,因为 主键约束。

这些表有一个auto inc int主键,它看起来就像种子一样 被重置为一个。这不会发生在所有表中,但只有一个 少。

我有什么想法可以解决这个问题吗?

此致 亚当

3 个答案:

答案 0 :(得分:0)

  • 您可以为相关表发布Server DDL语句吗?

答案 1 :(得分:0)

我遇到了同样的问题,并用GUID替换了Int / auto-incremental值。对我有用。

答案 2 :(得分:0)

我遇到了同样的问题。我通过将每个表上的每个主键设为GUID来修复它。这样,当在脱机环境中在客户端上创建记录,然后与服务器同步时,客户端/服务器主键之间不存在冲突。这也可以防止IDENTITY归因于每个INSERT自动递增到已存在的值的冲突。

如下面的屏幕截图所示,数据类型设置为nvarchar(50)(它可以是任何类似字符串的数据类型),默认值设置为(newid()),身份规范是设为No

SQL Server Management Studio中的GUID属性屏幕截图: GUID attribute screenshot in SQL Server Management Studio

您可以从Microsoft's documentation详细了解GUID数据类型,看看它们是否适合您的特定情况。