547: The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint (instruction en conflit avec une contrainte FOREIGN KEY / CHECK)
SQL ServerQue signifie cette erreur ?
L'instruction a violé une contrainte FOREIGN KEY ou CHECK. Soit elle a référencé une ligne parente inexistante, soit elle a écrit une valeur qui enfreint une règle CHECK, soit elle a tenté de supprimer une ligne parente encore référencée.
Cause
FK : la ligne parente référencée par la ligne enfant insérée n'existe pas. DELETE/UPDATE : des lignes enfants dépendent de la ligne parente supprimée/modifiée. CHECK : la valeur de la colonne ne satisfait pas la condition définie.
Comment la corriger
Insérez d'abord la ligne parente, puis la ligne enfant. Pour les suppressions, supprimez d'abord les lignes dépendantes ou définissez ON DELETE CASCADE le cas échéant. Pour une violation de CHECK, rendez la valeur conforme à la règle. Identifiez la contrainte violée à partir de son nom dans le texte de l'erreur.
Autres entrées pour ce moteur
- 1205Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim (transaction choisie comme victime de l'interblocage)
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object (violation de contrainte PRIMARY KEY / UNIQUE KEY ; clé en double non insérable)
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ... (ligne à clé en double non insérable dans un objet avec index unique)
- 18456Login failed for user (échec de connexion pour l'utilisateur)
- 8152String or binary data would be truncated (les données chaîne ou binaires seraient tronquées)
- 2628String or binary data would be truncated in table, column ...; truncated value (données tronquées dans la table, la colonne ... ; valeur tronquée)
- 1222Lock request time out period exceeded (délai de la demande de verrou dépassé)