2009-09-20 6 views
9

Estoy intentando crear una clave externa en una base de datos SQL Compact pero sigo obteniendo el mensaje de error "No se puede insertar un valor de clave externa porque el valor de la clave primaria correspondiente no existe."Problema de SQL Compact (CE) con la creación de clave externa

TableA hace referencia a TableB y estoy intentando crear una referencia desde TableC con la misma clave principal en TableB. Como ya tengo una referencia a TableB, tiene que haber una clave primaria válida en esa tabla.

He verificado y tripple comprobado las claves y los tipos de datos de todos los campos, así que estoy perplejo.

He intentado utilizar la opción gui en Visual Studio 2008 y el uso de un comando SQL.

Respuesta

14

Esto se debe a los "datos incorrectos" que tiene en las tablas. Compruebe si tiene todos los valores correspondientes en la tabla principal.

DBMS comprueba la integridad referencial para garantizar la "corrección" de los datos dentro de la base de datos.

ejemplo: Si usted tiene la columna StatusID en el Tabla 1 con los valores de 1 al 10 y la columna StatusID en el Tabla 2 con los valores de 1 a 11 no se puede utilizar Table1 como padre porque no hay un valor correspondiente (11) que ya tenga en Table2.

+4

Estúpido de mi parte no comprobar los datos, por supuesto. Borré la tabla de referencia y funcionó bien. ¡Gracias! –

Cuestiones relacionadas