Veuillez me suggérer comment résoudre l'erreur Comment résoudre l'erreur
Msg 547, niveau 16, état 0, ligne 1
L'instruction ALTER TABLE était en conflit avec la contrainte FOREIGN KEY "MyForeignKeyName". Le conflit s'est produit dans la base de données "MyDatabase", table "dbo.MyTable", colonne 'IMyColumn'.
Si vous essayez de créer une clé étrangère et que votre table enfant contient déjà des données qui ne correspondent pas à votre table parent, vous obtiendrez ce message d'erreur.
Par exemple:
CREATE TABLE MyParent(Job_id int PRIMARY KEY,Job_Name Varchar(50));
INSERT INTO MyParent Values(1,'CEO');
INSERT INTO MyParent Values(2,'Business Manager');
INSERT INTO MyParent Values(3,'DBA');
CREATE TABLE MyChild(Emp_id int,Emp_Name Varchar(50),Job_Id int)
INSERT INTO MyChild Values(1,'Lavanya',1);
INSERT INTO MyChild Values(1,'JP Chauhan',3);
INSERT INTO MyChild Values(1,'Rakesh',5);
Voir le dernier enregistrement de la table MyChild dont la valeur dans Job_Id est 5, qui n'est pas dans la table MyParent.
Si vous essayez de créer une relation de clé étrangère comme:
ALTER TABLE MyChild
ADD CONSTRAINT fk_My_foreignKey FOREIGN KEY(Job_Id)REFERENCES MyParent(Job_Id);
Le message d'erreur que vous obtiendrez:
Msg 547, niveau 16, état 0, ligne 1 L'instruction ALTER TABLE était en conflit avec la contrainte FOREIGN KEY "fk_My_foreignKey". Le conflit s'est produit dans la base de données "ma base de données", table "dbo.MyParent", colonne 'Job_id'.