22

Quiero una clave externa entre 2 tablas, así que lo intento como siempre lo hago. Ahora el problema que estoy teniendo es que no puede crear, y por lo que parece no se puede crear porque ya hay una clave, pero no la hay.clave externa no puede crear

- Unable to create relationship 
'FK_tbl_Paramed_RegistratieBehandelingen_Users'. 
    The ALTER TABLE statement conflicted with the 
    FOREIGN KEY constraint "FK_tbl_Paramed_RegistratieBehandelingen_Users". 
    The conflict occurred in database "Nestor_Server", 
    table "dbo.Users", column 'UserID'. 

he comprobado si tienen el mismo tipo, que hacen (BIGINT) así que no entiendo por qué no lo creará

Respuesta

48

Es posible que usted tiene registros en RegistratieBehandelingen (no estoy seguro acerca el nombre de la tabla) que no está presente en la Tabla de Usuarios.

select * from RegistratieBehandelingen a where UserID IS NULL or 
not exists (select 1 from Users b where b.UserID= a.UserID) 
+1

Sí un valor nulo se deslizó trought las redes, parece que por eso se mantiene en su defecto. Gracias –

+0

Exactamente ... Acabo de tener el mismo problema. Para probar si este es el caso, intente crear la clave externa usando "NO CHECK". Esto creará la clave, pero no se caerá si los datos existentes no coinciden con la regla de clave externa exacta que está tratando de crear. –

11

Esto significa que tiene datos secundarios sin la identificación padre correspondiente.

Ejecutar lo siguiente para ver si le da ningún resultado:

SELECT * 
FROM tbl_Paramed_RegistratieBehandelingen r 
LEFT JOIN Users u on r.UserID = u.UserID 
WHERE u.UserID IS NULL 

(nombres cambiar de tablas y columnas en su caso)

Si obtiene ningún resultado, entonces debe mostrar que registra contiene identificadores de usuario que don No coincide con los usuarios.

0

Después de la consulta anterior, es posible que desee eliminar identificación de usuario no existente de tbl_Paramed_RegistratieBehandelingen mesa o insertarlos en la tabla Usuarios.

Cuestiones relacionadas