你目前正处于脱机状态,正在等待 Internet 重新连接

修复:"指定的值违反了列或表的完整性约束"错误如果合并发布中包含的大量文章和 SQL Server Compact 3.5 中的约束

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 2585082
症状
请考虑以下情形:
  • 您正在运行 32 位操作系统的计算机上安装 Microsoft SQL Server Compact 3.5。
  • SQL Server Compact 3.5 创建订阅服务器。
  • 多行从下载合并发布到数据库时发布服务器与订阅服务器同步。行包含大量文章和约束。
在这种情况下,SQL Server 错误日志中记录类似于以下错误消息:
System.Data.SqlServerCe.SqlCeException
本机错误 = 0,HRESULT =-2147217873,错误消息: 指定的值违反了列或表的完整性约束。
原因
由于使用了无效的 exchange ID,将出现此问题。

SQL 压缩的客户端代理处于挂起状态运行 32 位操作系统的计算机上下载的多个行时,调用重试方法使用无效的 exchange id。因此,将出现"症状"一节中提到的问题。
解决方案
可以解决此问题的修补程序包含在累积更新包 5 中的 SQL Server 压缩 3.5 Service Pack 2 (SP2)。

有关如何获取累积更新包 5 SQL Server 压缩 3.5 sp2 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2553608 累积更新 5 SQL Server 压缩 3.5 版 Service Pack 2

替代方法
要解决此问题,请指定合并项目的行中的先后顺序的文章处理订单。数据库管理员可以使用试验和错误方法来查找行中的合并项目的顺序。

备注
  • 文章将在订单行中的合并文章的顺序的下载的如果行数小于将添加到重试队列中。
  • [@ processing_order =] processing_order 参数确定在合并出版物中要下载的文章的顺序。" Processing_order 参数是整数数据类型。如果 0 默认值 Processing_order 使用参数时,未排序的相关的文章。当 Processing_order 参数不是 0该值表示了相关文章的序号值。文章处理时,它们中的序号值增量顺序进行处理。如果文章有相同的值,这些文章的处理顺序由存储在文章昵称的字母顺序 sysmergearticles 系统表。
  • 有关详细信息 processing_order 参数,请访问下面的 MSDN 网站:
  • 有关合并项目的处理顺序的详细信息,请访问下面的 MSDN 网站:

属性

文章 ID:2585082 - 上次审阅时间:08/12/2011 10:40:00 - 修订版本: 1.0

Microsoft SQL Server Compact 3.5

  • kbqfe kbexpertiseadvanced kbfix kbsurveynew kbmt KB2585082 KbMtzh
反馈