MSSQL_ENG020598
消息详细信息
产品名称 |
SQL Server |
产品版本 |
9.0 |
产品内部版本号 |
9.00.1399.60 |
事件 ID |
20598 |
事件源 |
MSSQLSERVER |
组件 |
SQL Server 数据库引擎 |
符号名称 |
|
消息正文 |
应用复制的命令时在订阅服务器上找不到该行。 |
解释
如果分发代理尝试更新订阅服务器上的行,但该行已删除或该行的主键已更改,则事务复制中会出现此错误。默认情况下,事务发布的订阅服务器应视为只读,因为更改不会传播回发布服务器。对于事务复制,只有使用可更新订阅或对等复制,才能在订阅服务器上进行用户更改。有关这些选项的信息,请参阅事务复制的可更新订阅和对等事务复制。
用户操作
解决此问题:
- 如果在确定错误源的同时复制必须继续,请为分发代理指定参数 -SkipErrors 20598。这样可以使代理跳过导致错误 20598 的更改,同时还可以复制其他更改。有关详细信息,请参阅跳过事务复制中的错误。
- 标识订阅服务器上已删除的行,或主键与发布服务器上的相应行的主键不同的行。可以使用 tablediff 实用工具来确定发布服务器和订阅服务器中不同的行。有关在复制数据库中使用此实用工具的信息,请参阅How to: Compare Replicated Tables for Differences (Replication Programming)。
- 使用 tablediff 实用工具或其他方法更正订阅服务器上的行。
- (可选)删除 -SkipErrors 参数。