Відповідь, подана вище Аароном, ідеальна:
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]