MSSQL_ENG020598

消息详细信息

产品名称

SQL Server

产品版本

10.50

产品内部版本号

 

事件 ID

20598

事件源

MSSQLSERVER

组件

SQL Server 数据库引擎

符号名称

消息正文

应用复制的命令时在订阅服务器上找不到该行。

说明

如果分发代理尝试更新订阅服务器上的行,但该行已删除或该行的主键已更改,则事务性复制中会出现此错误。默认情况下,事务性发布的订阅服务器应视为只读,因为更改不会传播回发布服务器。对于事务性复制,只有使用可更新订阅或对等复制,才能在订阅服务器上进行用户更改。有关这些选项的信息,请参阅事务复制的可更新订阅对等事务复制

用户操作

解决此问题:

  1. 如果在确定错误源的同时复制必须继续,请为分发代理指定参数 -SkipErrors 20598。这样可以使代理跳过导致错误 20598 的更改,同时还可以复制其他更改。有关详细信息,请参阅跳过事务复制中的错误

  2. 标识订阅服务器上已删除的行,或主键与发布服务器上的相应行的主键不同的行。可以使用 tablediff 实用工具来确定发布服务器和订阅服务器中不同的行。有关在复制数据库中使用此实用工具的信息,请参阅如何比较所复制表的差异(复制编程)

  3. 使用 tablediff 实用工具或其他方法更正订阅服务器上的行。

  4. (可选)删除 -SkipErrors 参数。