2009-09-20 7 views
9

Sto cercando di creare una chiave esterna in un database SQL Compact ma continuo a ricevere il messaggio di errore "Impossibile inserire un valore di chiave esterna perché non corrisponde un valore di chiave primaria corrispondente esistere."Problema SQL Compact (CE) con la creazione di una chiave esterna

TableA fa già riferimento a TableB e sto cercando di creare un riferimento da TableC utilizzando la stessa chiave primaria in TableB. Poiché ho già un riferimento a TableB, deve esserci una chiave primaria valida in quella tabella.

Ho ricontrollato e ricontrollato le chiavi e i tipi di dati di tutti i campi, quindi sono perplesso.

Ho provato a utilizzare sia l'opzione GUI in Visual Studio 2008 che un comando SQL.

risposta

14

Questo a causa di "dati errati" che si hanno nelle tabelle. Controlla se hai tutti i valori corrispondenti nella tabella primaria.

Il DBMS verifica l'integrità referenziale per garantire la "correttezza" dei dati all'interno del database.

esempio: Se avete colonna StatusId nel Table1 con i valori da 1-10 e colonna StatusId nel Table2 con i valori da 1 a 11 non è possibile utilizzare Tabella1 come genitore perché non esiste un valore corrispondente (11) già presente in Tabella2.

+4

Stupido da parte mia di non controllare i dati naturalmente. Ho cancellato la tabella di riferimento e ha funzionato bene. Grazie! –

Problemi correlati