129 votes

SQL Ajouter une clé étrangère à la colonne existante

Si je suis à l'aide de la commande SQL suivante dans SQL Server 2008 pour mettre à jour une table avec une contrainte de clé étrangère:

ALTER TABLE Employees
ADD FOREIGN KEY (UserID)
REFERENCES ActiveDirectories(id)

UserID mon FK colonne dans l' Employees table. Je suis en train de référence de l' UserID mon ActiveDirectories table. Je reçois cette erreur:

Clé étrangère 'UserID' références de colonne non valide 'UserID' dans le référencement la table "Employés".

224voto

BluesRockAddict Points 7537

Erreur indique qu'il n'y a pas de nom d'utilisateur de la colonne dans la table Employés. Essayez d'ajouter une colonne, puis ré-exécuter l'instruction.

ALTER TABLE Employees
ADD CONSTRAINT FK_ActiveDirectories_UserID FOREIGN KEY (UserID)
    REFERENCES ActiveDirectories(id);

25voto

marc_s Points 321990

Peut-être que vous avez obtenu vos colonnes à l'envers??

ALTER TABLE Employees
ADD FOREIGN KEY (UserID)           <-- this needs to be a column of the Employees table
REFERENCES ActiveDirectories(id)   <-- this needs to be a column of the ActiveDirectories table

Se pourrait-il que la colonne est appelée ID dans la Employees tableau, et UserID dans la ActiveDirectories tableau?

Ensuite, votre commande doit être:

ALTER TABLE Employees
ADD FOREIGN KEY (ID)                   <-- column in table "Employees"
REFERENCES ActiveDirectories(UserID)   <-- column in table "ActiveDirectories" 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X