Maison >base de données >tutoriel mysql >Comment résoudre les erreurs d'instruction INSERT de SQL Server causées par des violations de contraintes de clé étrangère ?

Comment résoudre les erreurs d'instruction INSERT de SQL Server causées par des violations de contraintes de clé étrangère ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-20 04:17:13281parcourir

How to Resolve SQL Server INSERT Statement Errors Caused by Foreign Key Constraint Violations?

Erreurs d'instruction INSERT de SQL Server : violations de contraintes de clé étrangère

L'exécution d'une instruction INSERT dans SQL Server peut parfois entraîner des violations de contraintes de clé étrangère. Cette erreur, généralement affichée comme :

<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>

signifie une incohérence entre les données insérées et les relations de clé étrangère existantes.

Comprendre les contraintes des clés étrangères

Les clés étrangères maintiennent l'intégrité référentielle entre les tables. Ils garantissent que les données d'une table correspondent à une entrée valide dans une autre. Dans le message d'erreur, "FK_Sup_Item_Sup_Item_Cat" lie la table "dbo.Sup_Item" à "dbo.Sup_Item_Cat".

Analyser le conflit

La tentative INSERT échoue car la valeur sup_item_cat_id fournie n'existe pas en tant que clé primaire dans la table "dbo.Sup_Item_Cat". Cela viole directement la contrainte de clé étrangère.

Résoudre le problème

Pour résoudre ce problème, confirmez que la valeur sup_item_cat_id insérée est une clé primaire valide dans "dbo.Sup_Item_Cat". Assurez-vous que la valeur référencée existe réellement dans la colonne de clé primaire de la table cible.

Autres étapes de dépannage

  • Utilisez SQL Server Management Studio (SSMS) pour examiner les schémas de table et les relations de clés étrangères. (Cliquez avec le bouton droit sur le tableau -> "Tableau de script en tant que" -> "CRÉER vers" -> "Nouvelle fenêtre de l'éditeur de requête").
  • Examinez attentivement les données des deux tableaux pour identifier toute divergence ou référence invalide.
  • Lors de l'insertion de plusieurs lignes, utilisez des transactions pour garantir l'atomicité : soit toutes les insertions se terminent avec succès, soit aucune ne le fait.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn