2009-09-20 8 views
9

Próbuję utworzyć klucz obcy w bazie danych SQL Compact, ale nadal pojawia się komunikat o błędzie "Nie można wstawić wartości klucza obcego, ponieważ odpowiadająca jej wartość klucza podstawowego nie istnieć."Problem SQL Compact (CE) z tworzeniem klucza obcego

Tabela A odwołuje się już do TableB i próbuję utworzyć odwołanie z TableC przy użyciu tego samego klucza podstawowego w TableB. Ponieważ mam już odwołanie do TableB, musi istnieć poprawny klucz podstawowy w tej tabeli.

Dwa razy sprawdziłem i potrójnie sprawdziłem klucze i typy danych wszystkich pól, więc jestem zaskoczony.

Próbowałem użyć zarówno opcji GUI w Visual Studio 2008 i przy użyciu polecenia SQL.

Odpowiedz

14

Wynika to z "złych danych" w tabelach. Sprawdź, czy masz wszystkie odpowiednie wartości w tabeli podstawowej.

DBMS sprawdza integralność referencyjną w celu zapewnienia "poprawności" danych w bazie danych.

przykład: Jeśli kolumna StatusId w Table1 z wartościami z 1 do 10 i kolumny StatusId w Table2 z wartościami z 1 do 11 nie można używać Tabela 1 jako rodzic, ponieważ nie ma odpowiadającej wartości (11), którą już masz w Tabela2.

+4

Głupi mnie nie sprawdzać danych oczywiście. Oczyściłem tabelę odsyłającą i wszystko działało dobrze. Dzięki! –

Powiązane problemy