MSSQL_ENG002627
消息详细信息
产品名称 |
SQL Server |
产品版本 |
10.50 |
产品内部版本号 |
|
事件 ID |
2627 |
事件源 |
MSSQLSERVER |
组件 |
SQL Server 数据库引擎 |
符号名称 |
无 |
消息正文 |
违反了 %ls 约束 '%.*ls'。不能在对象 '%.*ls' 中插入重复键。 |
说明
这是可能引发的一般错误,不管是否复制数据库,都会引发该错误。在已复制的数据库中,通常会引发该错误,因为尚未跨拓扑对主键进行适当的管理。在分布式环境中,确保没有将同一值插入到多个节点上的主键列或任何其他唯一列,这一点很重要。可能的原因包括:
在多个节点上对行进行了插入和更新。合并复制和事务性复制的可更新订阅都提供了冲突检测和解决,但是最好还是只在一个节点上插入或更新给定行。对等事务性复制没有提供冲突检测和解决,它要求对插入和更新进行分区。
在应该为只读的订阅服务器上插入了行。应该将快照发布的订阅服务器视为只读,就像事务性发布的订阅服务器一样,除非使用了可更新的订阅或对等事务性复制。
使用了具有标识列的表,但是没有对该列进行适当的管理。
用户操作
所需操作取决于引发错误的原因: