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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow