Ответ, данный выше Аароном, совершенен:
UPDATE a
SET a.CalculatedColumn = b.[Calculated Column]
FROM Table1 AS a
INNER JOIN Table2 AS b
ON a.CommonField = b.[Common Field]
WHERE a.BatchNo = '110';
Просто хочу добавить, почему эта проблема возникает в SQL Server, когда мы пытаемся использовать псевдоним таблицы при обновлении этой таблицы, приведенный ниже синтаксис всегда будет выдавать ошибку:
update tableName t
set t.name = 'books new'
where t.id = 1
регистр может быть любым, если вы обновляете одну таблицу или обновляете при использовании объединения.
Хотя приведенный выше запрос будет хорошо работать в PL / SQL, но не в SQL Server.
Правильный способ обновления таблицы при использовании псевдонима таблицы в SQL Server:
update t
set t.name = 'books new'
from tableName t
where t.id = 1
Надеюсь, это поможет всем, почему ошибка пришла сюда.
UPDATE table1 a SET a.[field] = b.[field]
- удаление псевдонима работает, так чтоUPDATE table1 a SET [field] = b.[field]