Идентификатор многочастной части не может быть связан sql - программирование
Подтвердить что ты не робот

Идентификатор многочастной части не может быть связан sql

Я получаю multipart не может быть связанной ошибкой при следующем запросе

update nfltx
set 
b.boxno = a.boxno,
b.message = a.message,
b.nameboxno = a.nameboxno,
b.namemsg = a.namemsg,
b.phoneboxno = a.phoneboxno,
b.phonemsg = a.phonemsg

FROM ofltx a JOIN nfltx b 
ON a.ls_fullnam = b.ls_fullnam

но если я удалю b из сообщения boxno, и все, я не получаю ошибку. В чем причина этого. Спасибо, используя SQL Server 2008

4b9b3361

Ответ 1

Алиас таблицы, указанный в предложении FROM, не может использоваться в качестве классификатора в SET column_name. Это неверно:

update nfltx
set 
b.boxno = a.boxno,
b.message = a.message,
b.nameboxno = a.nameboxno,
b.namemsg = a.namemsg,
b.phoneboxno = a.phoneboxno,
b.phonemsg = a.phonemsg

FROM ofltx a JOIN nfltx b 
ON a.ls_fullnam = b.ls_fullnam

Чтобы он работал, удалите b. псевдоним из имени столбца.

update nfltx
set 
boxno = a.boxno,
message = a.message,
nameboxno = a.nameboxno,
namemsg = a.namemsg,
phoneboxno = a.phoneboxno,
phonemsg = a.phonemsg

FROM ofltx a JOIN nfltx b 
ON a.ls_fullnam = b.ls_fullnam

Раджа

Ответ 2

В чем причина этого?

An UPDATEDELETE, INSERT) может влиять на одну и только одну таблицу. Вы уже определили, на какую таблицу вы хотите повлиять:

update nfltx

Следовательно, не имеет смысла разрешать псевдоним для левой стороны назначений в предложении SET. Они должны быть столбцами, принадлежащими ранее идентифицированной таблице.

Если одна и та же таблица включена в предложение FROM несколько раз (и это таблица, которую вы хотите обновить), вам нужно будет предоставить псевдоним, указывающий, какой экземпляр таблицы должен быть обновлен, d предоставить его (один раз) в предложении UPDATE, а не в предложении SET.

Ответ 3

просто используйте

update b 

вместо

update nfltx

Человек, которого вы, ребята, делаете слишком сложно для тех, кто учится.