Compartir vía


MSSQL_ENG020598

Se aplica a: SQL Server Azure SQL Managed Instance

Detalles del mensaje

Attribute Valor
Nombre del producto SQL Server
Id. de evento 20598
Origen de eventos MSSQLSERVER
Componente Motor de base de datos de SQL Server
Nombre simbólico
Texto del mensaje No se encontró la fila en el suscriptor al aplicar el comando replicado.

Explicación

Este error se produce en la replicación transaccional si el Agente de distribución intenta actualizar una fila en el suscriptor, pero la fila se ha eliminado o se ha cambiado su clave principal. De forma predeterminada, los suscriptores de publicaciones transaccionales deben tratarse como de solo lectura, porque los cambios no se propagan de vuelta al publicador. En la replicación transaccional, los cambios de usuario deben realizarse solo en el suscriptor si se utilizan suscripciones actualizables o replicación del mismo nivel. Para obtener información acerca de estas opciones, vea Updatable Subscriptions for Transactional Replication y Peer-to-Peer Transactional Replication.

Acción del usuario

Para resolver este problema:

  1. Si la replicación debe continuar mientras identifica el origen del error, especifique el parámetro SkipErrors 20598 para el agente de distribución. Esto permite al agente omitir los cambios que provocan el error 20598, a la vez que permite que se repliquen otros cambios.

  2. Identifique qué filas del suscriptor se han eliminado o tienen una clave principal distinta que las filas correspondientes en el publicador. Puede utilizar la tablediff Utility para determinar qué filas de las bases de datos de publicaciones y suscripciones son diferentes. Para obtener información sobre el uso de esta utilidad con bases de datos replicadas, vea Comparar tablas replicadas para diferencias (programación de replicación).

  3. Corrija las filas del suscriptor con la utilidad tablediff u otro método.

  4. (Opcional) Quite el parámetro - SkipErrors .