Wenn ich in SQL Server 2008 den folgenden SQL-Befehl verwende, um eine Tabelle mit einer Fremdschlüsseleinschränkung zu aktualisieren:
ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)
UserID
als meine FK-Spalte in der Employees
Tabelle. Ich versuche das UserID
in meiner ActiveDirectories
Tabelle zu referenzieren . Ich erhalte diesen Fehler:
Der Fremdschlüssel 'UserID' verweist auf die ungültige Spalte 'UserID' in der Referenzierungstabelle 'Employees'.
sql-server-2008
foreign-key-relationship
ExceptionLimeCat
quelle
quelle
Antworten:
Der Fehler zeigt an, dass Ihre Employees-Tabelle keine UserID-Spalte enthält. Fügen Sie zuerst die Spalte hinzu und führen Sie die Anweisung erneut aus.
quelle
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'.
Vielleicht hast du deine Spalten rückwärts?
Könnte es sein, dass die Spalte
ID
in derEmployees
Tabelle undUserID
in derActiveDirectories
Tabelle aufgerufen wird ?Dann sollte Ihr Befehl lauten:
quelle
MySQL / SQL Server / Oracle / MS-Zugriff:
Verwenden Sie die folgende SQL-Syntax, um die Benennung einer FOREIGN KEY-Einschränkung zu ermöglichen und eine FOREIGN KEY-Einschränkung für mehrere Spalten zu definieren:
MySQL / SQL Server / Oracle / MS-Zugriff:
quelle
quelle
Ich denke, der Hauptfehler ist, dass Sie den Primärschlüssel für die ID in der ActiveDirectories-Tabelle nicht erwähnt haben
quelle
In der Zukunft.
quelle