Zoeken…
Syntaxis
- UPDATE- tabel
SET kolomnaam = waarde , kolomnaam2 = waarde_2 , ..., kolomnaam_n = waarde_n
WAAR staat ( logische operator staat_n)
Alle rijen bijwerken
In dit voorbeeld wordt de tabel Auto's uit de voorbeelddatabases gebruikt.
UPDATE Cars
SET Status = 'READY'
Met deze instructie wordt de kolom 'status' van alle rijen van de tabel 'Auto's' ingesteld op 'KLAAR' omdat er geen WHERE
clausule is om de set rijen te filteren.
Opgegeven rijen bijwerken
In dit voorbeeld wordt de tabel Auto's uit de voorbeelddatabases gebruikt.
UPDATE
Cars
SET
Status = 'READY'
WHERE
Id = 4
Met deze verklaring wordt de status van de rij 'Cars' met id 4 ingesteld op 'READY'.
WHERE
component bevat een logische expressie die voor elke rij wordt geëvalueerd. Als een rij aan de criteria voldoet, wordt de waarde bijgewerkt. Anders blijft een rij ongewijzigd.
Bestaande waarden wijzigen
In dit voorbeeld wordt de tabel Auto's uit de voorbeelddatabases gebruikt.
UPDATE Cars
SET TotalCost = TotalCost + 100
WHERE Id = 3 or Id = 4
Bijwerkbewerkingen kunnen huidige waarden in de bijgewerkte rij bevatten. In dit eenvoudige voorbeeld wordt de TotalCost
verhoogd met 100 voor twee rijen:
- De TotalCost van auto # 3 is verhoogd van 100 naar 200
- De TotalCost van auto # 4 is verhoogd van 1254 naar 1354
De nieuwe waarde van een kolom kan worden afgeleid van de vorige waarde of van een andere kolomwaarde in dezelfde tabel of een gekoppelde tabel.
UPDATE met gegevens uit een andere tabel
De voorbeelden hieronder te vullen in een PhoneNumber
voor elke werknemer die ook een Customer
en op dit moment niet over een telefoonnummer set in de Employees
tabel.
(In deze voorbeelden worden de tabellen Medewerkers en Klanten uit de voorbeelddatabases gebruikt.)
Standaard SQL
Update met behulp van een gecorreleerde subquery:
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 met 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 met 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
Bijgewerkte records vastleggen
Soms wil men de records vastleggen die zojuist zijn bijgewerkt.
CREATE TABLE #TempUpdated(ID INT)
Update TableName SET Col1 = 42
OUTPUT inserted.ID INTO #TempUpdated
WHERE Id > 50