Si j'utilise 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
étant ma colonne FK dans le Employees
tableau. J'essaie de référencer le UserID
dans mon ActiveDirectories
tableau. Je reçois cette erreur:
La clé étrangère «UserID» fait référence à la colonne «UserID» non valide dans la table de référence «Employés».
sql-server-2008
foreign-key-relationship
ExceptionLimeCat
la source
la source
Réponses:
Erreur indique qu'il n'y a aucune colonne UserID dans votre table Employés. Essayez d'abord d'ajouter la colonne, puis réexécutez l'instruction.
la source
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'.
Peut-être que vous avez vos colonnes à l'envers ??
Se pourrait-il que la colonne soit appelée
ID
dans leEmployees
tableau etUserID
dans leActiveDirectories
tableau?Ensuite, votre commande devrait être:
la source
Accès MySQL / SQL Server / Oracle / MS:
Pour autoriser la dénomination d'une contrainte FOREIGN KEY et pour définir une contrainte FOREIGN KEY sur plusieurs colonnes, utilisez la syntaxe SQL suivante:
Accès MySQL / SQL Server / Oracle / MS:
la source
la source
manière de création de clé étrangère correcte pour ActiveDirectories (id), je pense que l'erreur principale est que vous n'avez pas mentionné la clé primaire pour l'id dans la table ActiveDirectories
la source
A l'avenir.
la source