MSSQL_ENG020598
Message Details
Product Name |
SQL Server |
Product Version |
9.0 |
Product Build Number |
9.00.1399.60 |
Event ID |
20598 |
Event Source |
MSSQLSERVER |
Component |
SQL Server Database Engine |
Symbolic Name |
|
Message Text |
The row was not found at the Subscriber when applying the replicated command. |
Explanation
This error is raised in transactional replication if the Distribution Agent attempts to update a row at the Subscriber, but the row has been deleted or the primary key of the row has been changed. By default, Subscribers to transactional publications should be treated as read-only, because changes are not propagated back to the Publisher. For transactional replication, user changes should be made at the Subscriber only if updatable subscriptions or peer-to-peer replication is used. For information about these options, see Updatable Subscriptions for Transactional Replication and Peer-to-Peer Transactional Replication.
User Action
To resolve this problem:
- If replication must continue while you identify the source of the error, specify the parameter -SkipErrors 20598 for the Distribution Agent. This allows the agent to skip changes that result in error 20598, while allowing other changes to be replicated. For more information, see Skipping Errors in Transactional Replication.
- Identify which rows at the Subscriber have been deleted or have a different primary key than the corresponding rows at the Publisher. You can use the tablediff Utility to determine which rows are different in the publication and subscription databases. For information about using this utility with replicated databases, see How to: Compare Replicated Tables for Differences (Replication Programming).
- Correct the rows at the Subscriber using the tablediff utility or another method.
- (Optional) Remove the -SkipErrors parameter.
See Also
Concepts
Cause and Resolution of Replication Errors
Other Resources
Skipping Errors in Transactional Replication