

Um nun den Wert der Gruppenzugehörigkeit aus der Tabelle AccountOld zu übernehmen, haben wir folgende Möglichkeiten für die verschiedenen Datenbanksysteme:
MS SQL-Server
Beim Microsoft SQL-Server können wir dies auf 2 verschiedene Arten erledigen. Mit Hilfe einer Unterabfrage (Sub-Select) oder mit einem INNER-JOIN. Aus meiner Sicht ist jedoch die Variante mit dem INNER-JOIN zu bevorzugen.
Mit einem Sub-Select:
UPDATE Account SET Account.GroupID = (SELECT AccountOld.GroupID
FROM AccountOLD WHERE Account.Name = AccountOld.Name)
Mit einem INNER JOIN:
UPDATE ACCOUNT SET Account.GroupID = AccountOld.GroupID
FROM Account INNER JOIN AccountOLD ON Account.Name = AccountOld.Name
SQLite
Bei der SQLite DB funktioniert es nur mit Hilfe eines Sub-Select, da in einem Update-Statement kein FROM oder INNER-JOIN erlaubt ist.
Mit einem Sub-Select:
UPDATE Account SET GroupID = (SELECT AccountOld.GroupID
FROM AccountOLD WHERE Account.Name = AccountOld.Name)
Resultat des Update-Befehl