Aktualisieren von Daten
Die UPDATE-Anweisung in T-SQL wird verwendet, um vorhandene Daten in einer Tabelle zu ändern. UPDATE wird für eine Reihe von Zeilen verwendet, die entweder durch eine Bedingung in einer WHERE-Klausel oder in einem Join definiert sind. Die UPDATE-Anweisung verfügt über eine SET-Klausel, die angibt, welche Spalten geändert werden sollen. Die SET-Klausel umfasst eine oder mehrere Spalten, die durch Kommas getrennt sind, und stellt neue Werte für diese Spalten bereit. Die WHERE-Klausel in einer UPDATE-Anweisung hat die gleiche Struktur wie eine WHERE-Klausel in einer SELECT-Anweisung.
Hinweis
Es muss unbedingt beachtet werden, dass mit einer UPDATE-Anweisung ohne eine entsprechende WHERE-Klausel oder einen Join alle Zeilen in einer Tabelle aktualisiert werden. Verwenden Sie die UPDATE-Anweisung mit Vorsicht.
Die grundlegende Syntax einer UPDATE-Anweisung ist nachfolgend dargestellt.
UPDATE <TableName>
SET
<ColumnName> = { expression | DEFAULT | NULL }
{,…n}
WHERE <search_conditions>;
Das folgende Beispiel zeigt die UPDATE-Anweisung, mit der die Hinweise (Notes) für eine Werbeaktion geändert werden:
UPDATE Sales.Promotion
SET Notes = '25% off socks'
WHERE PromotionID = 2;
Sie können mehrere Spalten in der SET-Klausel ändern. Mit der folgenden UPDATE-Anweisung werden beispielsweise die Felder Discount und Notes für alle Zeilen geändert, in denen der Name der Werbeaktion „Get Framed“ lautet:
UPDATE Sales.Promotion
SET Discount = 0.2, Notes = REPLACE(Notes, '10%', '20%')
WHERE PromotionName = 'Get Framed';
Die UPDATE-Anweisung unterstützt auch eine FROM-Klausel, sodass Sie Daten basierend auf den Ergebnissen einer Abfrage ändern können. Der folgende Code aktualisiert z. B. die Tabelle Sales.Promotion anhand von Werten, die aus der Tabelle Product.ProductModel abgerufen werden.
UPDATE Sales.Promotion
SET Notes = FORMAT(Discount, 'P') + ' off ' + m.Name
FROM Product.ProductModel AS m
WHERE Notes IS NULL
AND Sales.Promotion.ProductModelID = m.ProductModelID;