sql >> Base de Datos >  >> RDS >> Sqlserver

Problema de clave externa con múltiples db en una transacción

Bueno, Id las columnas no son "claves" significativas y lo harán tropezar por todas partes. Se supone que son identificadores físicos sin sentido, y usted les ha asignado un significado. Cuando exiges los mismos Ids existen en otra base de datos.

¿Ha resuelto la violación de FK? Lo más probable es que tengas un Id totalmente diferente para la fila DB1, en DB2; y ciertamente diferentes Ids de los padres .

Tienes que no constantemente especificar un Id valor y dejar que el servidor lo complete, o siempre especificar un Id valor, en ambas bases de datos.

El segundo problema es que no estás pensando transaccionalmente. Las transacciones de múltiples db no son ningún problema. Así que olvida el Id columna, lo que contiene, y use las claves reales para la tabla, tanto en Dbs. Los ids será diferente, pero a quién le importa (eso significa eliminar la necesidad de asignar un significado al identificador sin sentido).