Jika Anda mendapatkan kesalahan yang memberi tahu Anda bahwa "Pengidentifikasi multi-bagian tidak dapat diikat.", biasanya berarti Anda mengawali satu atau beberapa kolom dengan tabel yang tidak disertakan dalam kueri Anda, atau alias yang sebenarnya belum Anda tetapkan ke tabel.
Untungnya, pesan kesalahan menunjukkan pengidentifikasi multi-bagian mana yang menyebabkan masalah.
Contoh
Berikut ini contoh untuk mendemonstrasikan cara mendapatkan kesalahan.
SELECT * FROM Cats
INNER JOIN Dogs d
ON c.CatName = d.DogName;
Hasil:
Msg 4104, Level 16, State 1, Line 3 The multi-part identifier "c.CatName" could not be bound.
Dalam contoh ini, saya lupa menyertakan alias untuk Kucing tabel.
Kesalahan juga akan terjadi jika Anda mencoba mereferensikan nama tabel setelah Anda memberikan alias.
Seperti ini:
SELECT * FROM Cats c
INNER JOIN Dogs d
ON Cats.CatName = d.DogName;
Hasil:
Msg 4104, Level 16, State 1, Line 3 The multi-part identifier "Cats.CatName" could not be bound.
Jadi dalam hal ini, saya menetapkan alias dengan benar, tetapi dalam ON
klausa I mereferensikan nama tabel yang sebenarnya, bukan alias.
Solusi
Jadi solusinya adalah memastikan Anda telah menetapkan semua alias yang mungkin Anda rujuk nanti dalam kueri, dan juga memastikan Anda menggunakan alias tersebut alih-alih nama tabel secara langsung.
Jadi jika Anda akan menggunakan alias, seperti ini:
SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;
Atau jika Anda memilih untuk tidak menggunakan alias, seperti ini:
SELECT * FROM Cats
INNER JOIN Dogs
ON Cats.CatName = Dogs.DogName;