![Why Am I Getting Multi-Part Identifier Binding Errors in SQL and How Can I Fix Them?](https://img.php.cn/upload/article/000/000/000/173609452391339.jpg)
Ralat Pengecam Berbilang Bahagian: Penjelasan dan Penyelesaian Terperinci
Dalam pertanyaan SQL, pengecam berbilang bahagian ialah deskriptor yang menentukan medan atau jadual dengan berbilang komponen . Sebagai contoh, pengecam berbilang bahagian "[MainDB].[dbo].[Syarikat]" merujuk kepada jadual bernama "Syarikat" dalam skema pangkalan data "[MainDB]" dan skema "[dbo]". Walau bagaimanapun, apabila ralat timbul dengan pengecam berbilang bahagian, ia menandakan isu yang memerlukan pemahaman.
Punca Ralat Mengikat Pengecam Berbilang Bahagian
Terdapat beberapa sebab mengapa pengecam berbilang bahagian mungkin gagal bind:
-
Typo: Salah ejaan atau huruf besar yang salah dalam komponen pengecam boleh menghalang pengikatan.
-
Kekeliruan antara Jadual dan Lajur: Percubaan untuk menggunakan nama lajur sebagai nama jadual, atau sebaliknya, boleh membawa kepada pengikatan ralat.
-
Perkataan Terpelihara: Menggunakan kata kunci terpelihara dalam nama jadual atau medan tanpa menyertakannya dalam kurungan segi empat sama ([]) boleh menyebabkan konflik.
-
Tiada Diperlukan Lajur: Apabila mengemas kini jadual berdasarkan jadual lain, pastikan semua lajur yang diperlukan disertakan dalam jadual sasaran adalah penting untuk pengikatan yang betul.
Contoh dan Penyelesaian
Pertimbangkan pertanyaan berikut:
SELECT * FROM [MainDB].[dbo].[Company]
WHERE [MainDB].[dbo].[Company].[CompanyName] = 'StackOverflow'
Salin selepas log masuk
Pertanyaan ini akan mencetuskan ralat "Pengecam berbilang bahagian "MainDB.dbo.Company.CompanyName" tidak boleh diikat." kerana ia mengandungi kesilapan taip: "[Nama Syarikat]" mestilah "Nama Syarikat". Membetulkan kesilapan menaip menyelesaikan ralat pengikatan.
Langkah-langkah Pencegahan
Untuk mengelakkan ralat pengikatan pengecam berbilang bahagian:
-
Gunakan Penyertaan Sintaks dan Autolengkap: Penyunting kod dengan penyerlahan sintaks boleh membuat lebih mudah untuk mengesan kesilapan. Ciri autolengkap boleh membantu dalam memasukkan pengecam dengan tepat.
-
Sisipkan Nama Jadual dan Lajur dengan []: Nama meja dan lajur sekeliling dengan kurungan segi empat sama memastikan pengecaman yang betul dan mengelakkan konflik dengan perkataan terpelihara.
-
Gunakan Alat untuk Penamaan Jadual Pintar: Alat seperti Redgate SQL Prompt atau SQL Server 2008 IntelliSense boleh memberikan bantuan pintar dengan penamaan jadual dan lajur, mengurangkan kemungkinan ralat.
-
Pastikan Kemasukan Lajur: Apabila mengemas kini jadual berdasarkan yang lain, sahkan bahawa semua lajur yang berkaitan dimasukkan dengan betul dalam definisi jadual sasaran.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Mengikat Pengecam Berbilang Bahagian dalam SQL dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!