Sök…
Syntax
- UPDATE- tabell
SET column_name = value , column_name2 = value_2 , ..., column_name_n = value_n
VAR villkor ( logiskt operatörens villkor_n)
Uppdatera alla rader
I det här exemplet används biltabellen från exempeldatabaserna.
UPDATE Cars
SET Status = 'READY'
Detta uttalande sätter kolumnen "status" för alla rader i "Cars" -tabellen till "KLAR" eftersom den inte har en WHERE
klausul för att filtrera uppsättningen av rader.
Uppdatera specificerade rader
I det här exemplet används biltabellen från exempeldatabaserna.
UPDATE
Cars
SET
Status = 'READY'
WHERE
Id = 4
Detta uttalande ställer in statusen för raden med "Bilar" med ID 4 till "KLAR".
WHERE
klausulen innehåller ett logiskt uttryck som utvärderas för varje rad. Om en rad uppfyller kriterierna uppdateras dess värde. Annars förblir en rad oförändrad.
Ändra befintliga värden
I det här exemplet används biltabellen från exempeldatabaserna.
UPDATE Cars
SET TotalCost = TotalCost + 100
WHERE Id = 3 or Id = 4
Uppdateringsoperationer kan inkludera aktuella värden i den uppdaterade raden. I detta enkla exempel TotalCost
med 100 för två rader:
- TotalCost of Car # 3 höjs från 100 till 200
- TotalCost of Car # 4 ökas från 1254 till 1354
En kolumns nya värde kan härledas från dess tidigare värde eller från någon annan kolumns värde i samma tabell eller en sammanfogad tabell.
UPPDATERA med data från en annan tabell
Exemplen nedan fyller i ett PhoneNumber
för alla anställda som också är Customer
och för närvarande inte har ett telefonnummer som anges i Employees
.
(Dessa exempel använder tabellerna Anställda och kunder från exempeldatabaserna.)
Standard SQL
Uppdatera med hjälp av en korrelerad undersökning:
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
Uppdatera med 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
Uppdatera med 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
Fånga uppdaterade poster
Ibland vill man fånga de poster som just har uppdaterats.
CREATE TABLE #TempUpdated(ID INT)
Update TableName SET Col1 = 42
OUTPUT inserted.ID INTO #TempUpdated
WHERE Id > 50