Die oben von Aaron gegebene Antwort ist perfekt:
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';
Ich möchte nur hinzufügen, warum dieses Problem in SQL Server auftritt, wenn wir versuchen, Alias einer Tabelle zu verwenden, während die Aktualisierung dieser Tabelle, unten erwähnen Syntax wird immer Fehler geben:
update tableName t
set t.name = 'books new'
where t.id = 1
Fall kann jeder sein, wenn Sie eine einzelne Tabelle aktualisieren oder eine Aktualisierung unter Verwendung einer Verknüpfung vornehmen.
Obwohl obige Abfrage funktioniert gut in PL/SQL, aber nicht in SQL Server.
Der korrekte Weg, eine Tabelle zu aktualisieren, während Sie einen Tabellenalias in SQL Server verwenden, ist:
update t
set t.name = 'books new'
from tableName t
where t.id = 1
Ich hoffe, dass es allen hilft, warum der Fehler hierher kam.