A resposta dada acima por Aaron é perfeita:
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';
Só quero adicionar por que esse problema ocorre no SQL Server quando tentamos usar o alias de uma tabela durante a atualização dessa tabela; a sintaxe abaixo mencionada sempre dará erro:
update tableName t
set t.name = 'books new'
where t.id = 1
case pode ser qualquer um, se você estiver atualizando uma única tabela ou atualizando enquanto estiver usando junção.
Embora a consulta acima funcione bem no PL / SQL, mas não no SQL Server.
A maneira correta de atualizar uma tabela ao usar o alias da tabela no SQL Server é:
update t
set t.name = 'books new'
from tableName t
where t.id = 1
Espero que ajude a todos por que o erro veio aqui.
UPDATE table1 a SET a.[field] = b.[field]
- removendo a um alias de funcionar, por issoUPDATE table1 a SET [field] = b.[field]