Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kesalahan SQL Server 4104:Pengidentifikasi multi-bagian tidak dapat diikat.

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Keamanan Ketat CLR di SQL Server 2017

  2. Apa metode terbaik untuk meneruskan parameter ke SQLCommand?

  3. Kesalahan SQL Server 4104:Pengidentifikasi multi-bagian tidak dapat diikat.

  4. Jalankan Query Dinamis dengan go in sql

  5. Bagaimana cara mengizinkan parameter daftar drop-down di SSRS memiliki nilai default -- All -- ?