Suche…
Syntax
- UPDATE- Tabelle
SET Spaltenname = Wert , Spaltenname2 = Wert_2 , ..., Spaltenname_n = Wert_n
WHERE- Bedingung ( logischer Operator condition_n)
Alle Zeilen aktualisieren
In diesem Beispiel wird die Cars-Tabelle aus den Beispieldatenbanken verwendet.
UPDATE Cars
SET Status = 'READY'
Diese Anweisung setzt die Spalte "Status" aller Zeilen der Tabelle "Cars" auf "READY", da sie keine WHERE
Klausel zum Filtern des Satzes von Zeilen enthält.
Angegebene Zeilen aktualisieren
In diesem Beispiel wird die Cars-Tabelle aus den Beispieldatenbanken verwendet.
UPDATE
Cars
SET
Status = 'READY'
WHERE
Id = 4
Diese Anweisung setzt den Status der Zeile "Autos" mit der ID 4 auf "BEREIT".
WHERE
Klausel enthält einen logischen Ausdruck, der für jede Zeile ausgewertet wird. Wenn eine Zeile die Kriterien erfüllt, wird der Wert aktualisiert. Ansonsten bleibt eine Zeile unverändert.
Bestehende Werte ändern
In diesem Beispiel wird die Cars-Tabelle aus den Beispieldatenbanken verwendet.
UPDATE Cars
SET TotalCost = TotalCost + 100
WHERE Id = 3 or Id = 4
Aktualisierungsvorgänge können aktuelle Werte in der aktualisierten Zeile enthalten. In diesem einfachen Beispiel wird TotalCost
für zwei Zeilen um 100 erhöht:
- Die Gesamtkosten von Wagen Nr. 3 werden von 100 auf 200 erhöht
- Die Gesamtkosten von Wagen Nr. 4 werden von 1254 auf 1354 erhöht
Der neue Wert einer Spalte kann aus dem vorherigen Wert oder aus dem Wert einer anderen Spalte in derselben Tabelle oder einer verbundenen Tabelle abgeleitet werden.
UPDATE mit Daten aus einer anderen Tabelle
In den folgenden Beispielen wird eine PhoneNumber
für jeden Mitarbeiter angegeben, der ebenfalls Customer
und derzeit keine Telefonnummer in der Employees
Tabelle festgelegt hat.
(Diese Beispiele verwenden die Employees- und Customers- Tabellen aus den Beispieldatenbanken.)
Standard SQL
Aktualisieren Sie mit einer korrelierten Unterabfrage:
UPDATE
Employees
SET PhoneNumber =
(SELECT
c.PhoneNumber
FROM
Customers c
WHERE
c.FName = Employees.FName
AND c.LName = Employees.LName)
WHERE Employees.PhoneNumber IS NULL
SQL: 2003
Update mit MERGE
:
MERGE INTO
Employees e
USING
Customers c
ON
e.FName = c.Fname
AND e.LName = c.LName
AND e.PhoneNumber IS NULL
WHEN MATCHED THEN
UPDATE
SET PhoneNumber = c.PhoneNumber
SQL Server
Update mit INNER JOIN
:
UPDATE
Employees
SET
PhoneNumber = c.PhoneNumber
FROM
Employees e
INNER JOIN Customers c
ON e.FName = c.FName
AND e.LName = c.LName
WHERE
PhoneNumber IS NULL
Aktualisierte Datensätze erfassen
Manchmal möchte man die gerade aktualisierten Datensätze erfassen.
CREATE TABLE #TempUpdated(ID INT)
Update TableName SET Col1 = 42
OUTPUT inserted.ID INTO #TempUpdated
WHERE Id > 50