Heim >Datenbank >MySQL-Tutorial >Warum steht meine SQL Server-INSERT-Anweisung im Konflikt mit einer FOREIGN KEY-Einschränkung?

Warum steht meine SQL Server-INSERT-Anweisung im Konflikt mit einer FOREIGN KEY-Einschränkung?

Linda Hamilton
Linda HamiltonOriginal
2025-01-20 03:57:11575Durchsuche

Why Does My SQL Server INSERT Statement Conflict with a FOREIGN KEY Constraint?

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

vorhanden sein

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn