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