Heim >Datenbank >MySQL-Tutorial >Warum steht meine SQL Server-INSERT-Anweisung im Konflikt mit einer FOREIGN KEY-Einschränkung?
Fehlerbehebung bei FOREIGN KEY-Einschränkungsfehlern von SQL Server
SQL Server generiert häufig den Fehler „INSERT-Anweisung im Konflikt mit der FOREIGN KEY-Einschränkung“. Dies passiert, wenn Sie versuchen, Daten in eine Tabelle einzufügen, die über eine Fremdschlüsselbeziehung mit einer anderen verknüpft ist.
Das Problem:
Dieser Fehler tritt während einer INSERT-Operation auf, wenn der Fremdschlüsselwert in der Zieltabelle mit keinem vorhandenen Primärschlüssel in der referenzierten Tabelle übereinstimmt.
Beispiel einer Fehlermeldung:
<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>
Diese Meldung weist darauf hin, dass ein Einfügungsversuch in die Sup_Item
-Tabelle fehlgeschlagen ist, da der sup_item_cat_id
-Fremdschlüsselwert ('123123') nicht als Primärschlüssel in der Sup_Item_Cat
-Tabelle vorhanden ist.
Die Lösung:
Die Lösung ist unkompliziert: Stellen Sie sicher, dass der Fremdschlüsselwert, den Sie einfügen, mit einem vorhandenen Primärschlüssel in der referenzierten Tabelle übereinstimmt. In unserem Beispiel muss in sup_item_cat_id
.Sup_Item_Cat
bereits ein passendes
Verwenden Sie den Befehl sp_help
von SQL Server Management Studio, um Fremdschlüsseleinschränkungen und zugehörige Tabellen zu untersuchen. sp_help 'dbo.Sup_Item_Cat'
stellt beispielsweise Details zu Fremdschlüsseleinschränkungen für diese Tabelle bereit und hilft Ihnen, die referenzierte Tabelle und Spalte zu identifizieren und zu bestätigen, dass Ihre INSERT-Anweisung gültige Daten verwendet.
Das obige ist der detaillierte Inhalt vonWarum steht meine SQL Server-INSERT-Anweisung im Konflikt mit einer FOREIGN KEY-Einschränkung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!