Compartir a través de


MSSQL_ENG002627

Detalles del mensaje

Nombre del producto SQL Server
Id. del evento 2627
Origen del evento MSSQLSERVER
Componente Motor de base de datos de SQL Server
Nombre simbólico No disponible
Texto del mensaje Infracción de la restricción %ls "%.*ls". No se puede insertar la clave duplicada en el objeto '%.*ls'.

Explicación

Se trata de un error general que se puede generar independientemente de si se replica una base de datos. En las bases de datos replicadas, el error suele producirse porque las claves principales no se han administrado correctamente en toda la topología. En un entorno distribuido, es esencial asegurarse de que el mismo valor no se inserta en una columna de clave principal ni en ninguna otra columna única en más de un nodo. Entre las posibles causas figuran:

  • Las inserciones y actualizaciones de una fila se producen en más de un nodo. La replicación de combinación y las suscripciones actualizables para la replicación transaccional ofrecen detección y resolución de conflictos, pero sigue siendo preferible insertar o actualizar un registro específico en un solo nodo. Las transacciones punto a punto no proporcionan detección ni resolución de conflictos; requieren que las inserciones y actualizaciones se particionen.

  • Se insertó una fila en un suscriptor que debe ser de solo lectura. Los suscriptores a las publicaciones de instantáneas deben considerarse como de solo lectura, al igual que los suscriptores a publicaciones transaccionales, a menos que se usen suscripciones actualizables o replicación transaccional punto a punto.

  • Se usa una tabla con una columna de identidad, pero la columna no se administra correctamente.

Acción del usuario

La acción necesaria depende del motivo por el que se produjo el error:

  • Las inserciones y actualizaciones de una fila se producen en más de un nodo.

    Independientemente del tipo de replicación usado, se recomienda particionar inserciones y actualizaciones siempre que sea posible, ya que esto reduce el procesamiento necesario para la detección y resolución de conflictos. Para la replicación transaccional punto a punto, se requieren inserciones de particiones y actualizaciones. Para obtener más información, consulte Replicación transaccional entre pares.

  • Se insertó una fila en un suscriptor que debe ser de solo lectura.

    No inserte ni actualice las filas en el Suscriptor a menos que use la replicación de mezcla, la replicación transaccional con suscripciones actualizables o la replicación transaccional punto a punto.

  • Se usa una tabla con una columna de identidad, pero la columna no se administra correctamente.

    Para la replicación de mezcla y la replicación transaccional con suscripciones actualizables, las columnas de identidad deben ser gestionadas automáticamente por la replicación. Para la replicación transaccional de igual a igual, deben administrarse manualmente. Para obtener más información, vea Replicar columnas de identidad.

Véase también

Referencia de errores y eventos (replicación)
Replicación de fusión
Replicación transaccional entre pares
Suscripciones actualizables para la replicación transaccional