MSSQL_ENG020598
Detalles del mensaje
Nombre del producto |
SQL Server |
Versión del producto |
10.0 |
Número de compilación del producto |
|
Identificador del evento |
20598 |
Origen del evento |
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 Suscripciones actualizables para replicación transaccional y Replicación transaccional punto a punto.
Acción del usuario
Para resolver este problema:
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.
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 (utilidad) para determinar qué filas de las bases de datos de publicaciones y suscripciones son diferentes. Para obtener información sobre cómo usar esta utilidad con bases de datos replicadas, vea Comparar tablas replicadas para buscar diferencias (programación de la replicación).
Corrija las filas del suscriptor con la utilidad tablediff u otro método.
(Opcional) Quite el parámetro -SkipErrors.