Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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