Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat Penyata INSERT SQL Server yang Disebabkan oleh Pelanggaran Kekangan Utama Asing?

Bagaimana untuk Menyelesaikan Ralat Penyata INSERT SQL Server yang Disebabkan oleh Pelanggaran Kekangan Utama Asing?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-20 04:17:13281semak imbas

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

Ralat Penyata INSERT Server SQL: Pelanggaran Kekangan Utama Asing

Melaksanakan pernyataan INSERT dalam SQL Server kadangkala boleh mengakibatkan pelanggaran kekangan kunci asing. Ralat ini, biasanya dipaparkan sebagai:

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

menandakan ketidakkonsistenan antara data yang dimasukkan dan perhubungan utama asing sedia ada.

Memahami Kekangan Utama Asing

Kunci asing mengekalkan integriti rujukan antara jadual. Mereka menjamin bahawa data dalam satu jadual sepadan dengan entri yang sah dalam yang lain. Dalam mesej ralat, "FK_Sup_Item_Sup_Item_Cat" memautkan jadual "dbo.Sup_Item" kepada "dbo.Sup_Item_Cat".

Menganalisis Konflik

Percubaan INSERT gagal kerana nilai sup_item_cat_id yang disediakan tidak wujud sebagai kunci utama dalam jadual "dbo.Sup_Item_Cat". Ini secara langsung melanggar kekangan kunci asing.

Menyelesaikan Isu

Untuk membetulkannya, sahkan bahawa nilai sup_item_cat_id yang dimasukkan ialah kunci utama yang sah dalam "dbo.Sup_Item_Cat". Pastikan nilai yang dirujuk benar-benar wujud dalam lajur kunci utama jadual sasaran.

Langkah Penyelesaian Masalah Selanjutnya

  • Gunakan SQL Server Management Studio (SSMS) untuk menyemak skema jadual dan perhubungan utama asing. (Klik kanan jadual -> "Jadual Skrip sebagai" -> "BUAT Kepada" -> "Tetingkap Editor Pertanyaan Baharu").
  • Periksa data dalam kedua-dua jadual dengan teliti untuk mengenal pasti sebarang percanggahan atau rujukan yang tidak sah.
  • Apabila memasukkan berbilang baris, gunakan transaksi untuk memastikan atomicity—semua sisipan sama ada berjaya diselesaikan atau tiada.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Penyata INSERT SQL Server yang Disebabkan oleh Pelanggaran Kekangan Utama Asing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn