Dépannage des erreurs de contrainte FOREIGN KEY de SQL Server
SQL Server génère fréquemment l'erreur « Instruction INSERT en conflit avec la contrainte FOREIGN KEY ». Cela se produit lorsque vous essayez d'insérer des données dans une table liée à une autre via une relation de clé étrangère.
Le problème :
Cette erreur se produit lors d'une opération INSERT si la valeur de la clé étrangère dans la table cible ne correspond à aucune clé primaire existante dans la table référencée.
Exemple de message d'erreur :
<code>Msg 547, Level 16, State 0, Line 1 The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Sup_Item_Sup_Item_Cat". The conflict occurred in database "dev_bo", table "dbo.Sup_Item_Cat". The statement has been terminated.</code>
Ce message indique qu'une tentative d'insertion dans la table Sup_Item
a échoué car la valeur de clé étrangère sup_item_cat_id
(« 123123 ») n'existe pas en tant que clé primaire dans la table Sup_Item_Cat
.
La solution :
Le correctif est simple : assurez-vous que la valeur de clé étrangère que vous insérez correspond à une clé primaire existante dans la table référencée. Dans notre exemple, un sup_item_cat_id
correspondant doit déjà exister dans Sup_Item_Cat
.
Utilisez la commande sp_help
de SQL Server Management Studio pour examiner les contraintes de clé étrangère et les tables associées. Par exemple, sp_help 'dbo.Sup_Item_Cat'
fournit des détails sur les contraintes de clé étrangère pour cette table, vous aidant à identifier la table et la colonne référencées et à confirmer que votre instruction INSERT utilise des données valides.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!