Delen via


MSSQL_ENG020598

Message Details

Product Name

SQL Server

Product Version

10.50

Product Build Number

 

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:

  1. 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.

  2. 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).

  3. Correct the rows at the Subscriber using the tablediff utility or another method.

  4. (Optional) Remove the -SkipErrors parameter.