Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Грешка на SQL Server 4104:Идентификаторът от няколко части не може да бъде обвързан.

Ако получите грешка, която ви казва, че „Идентификаторът от няколко части не може да бъде обвързан.“, това обикновено означава, че поставяте префикс на една или повече колони с таблица, която не е включена във вашата заявка, или псевдоним които всъщност не сте присвоили към маса.

За щастие съобщението за грешка ви показва кой идентификатор от няколко части причинява проблема.

Пример

Ето пример, за да демонстрирате как да получите грешката.

SELECT * FROM Cats
INNER JOIN Dogs d
ON c.CatName = d.DogName;

Резултат:

Msg 4104, Level 16, State 1, Line 3
The multi-part identifier "c.CatName" could not be bound.

В този пример забравям да включа псевдоним за Котки таблица.

Грешката също ще възникне, ако се опитате да препратите името на таблицата, след като вече сте предоставили псевдоним.

Като това:

SELECT * FROM Cats c
INNER JOIN Dogs d
ON Cats.CatName = d.DogName;

Резултат:

Msg 4104, Level 16, State 1, Line 3
The multi-part identifier "Cats.CatName" could not be bound.

Така че в този случай правилно присвоих псевдонима, но в ON клауза Позовах се на действителното име на таблица вместо псевдонима.

Решението

Така че решението е да се уверите, че сте присвоили всички псевдоними, които може да посочите по-късно в заявката, както и да се уверите, че използвате тези псевдоними вместо директно името на таблицата.

Така че, ако ще използвате псевдоними, като това:

SELECT * FROM Cats c
INNER JOIN Dogs d
ON c.CatName = d.DogName;

Или ако решите да не използвате псевдоними, като това:

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. Как да върнете резултатите от заявката като списък, разделен със запетая в SQL Server – STRING_AGG()

  2. Как да задам стойност на променлива с помощта на 'execute' в t-sql?

  3. WHERE IN (масив от идентификационни номера)

  4. Как да създадете композитен външен ключ в SQL Server (пример за T-SQL)

  5. Връщане на списък с функции на дялове в SQL Server (T-SQL)