Jeśli używam następującego polecenia SQL w programie SQL Server 2008, aby zaktualizować tabelę za pomocą ograniczenia klucza obcego:
ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)
UserID
będąc moją kolumną FK w Employees
tabeli. Próbuję odwołać się do UserID
w mojej ActiveDirectories
tabeli. Otrzymuję ten błąd:
Klucz obcy „ID użytkownika” odwołuje się do nieprawidłowej kolumny „ID użytkownika” w tabeli odniesienia „Pracownicy”.
sql-server-2008
foreign-key-relationship
ExceptionLimeCat
źródło
źródło
Odpowiedzi:
Błąd wskazuje, że w tabeli Pracownicy nie ma kolumny ID użytkownika. Spróbuj najpierw dodać kolumnę, a następnie ponownie uruchom instrukcję.
źródło
There are no primary or candidate keys in the referenced table 'ActiveDirectories' that match the referencing column list in the foreign key 'FK__Employees__UserI__04E4BC85'.
Może masz swoje kolumny wstecz?
Czy to możliwe, że kolumna jest wywoływana
ID
wEmployees
tabeli iUserID
wActiveDirectories
tabeli?Wtedy twoje polecenie powinno brzmieć:
źródło
MySQL / SQL Server / Oracle / MS Access:
Aby umożliwić nazewnictwo ograniczenia KLUCZ OBCY i zdefiniowanie ograniczenia KLUCZ OBCY w wielu kolumnach, należy użyć następującej składni języka SQL:
MySQL / SQL Server / Oracle / MS Access:
źródło
źródło
sposób tworzenia klucza obcego poprawny dla ActiveDirectories (id), myślę, że głównym błędem jest to, że nie wspomniałeś o kluczu podstawowym dla id w tabeli ActiveDirectories
źródło
W przyszłości.
źródło