This Dokument behandelt folgende Themen:
Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen
Siehe auch die folgenden Abschnitte in der Database Management System Interfaces-Dokumentation:
UPDATE - SQL im Teil Natural for DB2
UPDATE - SQL im Teil Natural SQL Gateway
UPDATE - SQL im Teil Natural for SQL/DS
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Das SQL-Statement UPDATE dient zum Aktualisieren von Zeilen
in einer Tabelle ohne Benutzung eines Cursor ("Searched"
UPDATE) oder Spalten in einer Zeile, auf die ein Cursor
positioniert ist (("Positioned"
UPDATE).
Es sind zwei unterschiedliche Strukturen möglich:
Das Searched UPDATE-Statement ist ein eigenständiges
Statement, das ohne Referenzierung zu einem SELECT-Statement verwendet werden
kann. Mit einem einzigen Statement können Sie keine, eine, mehrere oder alle
Zeilen einer Tabelle ändern. Welche Zeilen geändert werden, bestimmen Sie mit
der Suchbedingung (siehe search-condition),
die auf die Tabelle angewendet wird. Optional ist es möglich, einem Tabellen-
oder View-Namen einen Korrelationsnamen (siehe
correlation-name)
zuzuweisen.
Anmerkung:
Die Anzahl der Zeilen, die mit einem Searched
UPDATE-Statement tatsächlich geändert wurden, kann mit der
Systemvariablen *ROWCOUNT
(siehe Systemvariablen-Dokumentation) ermittelt werden.
|
||||||||||||||||||||||
|
||||||||||||||||||||||
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax Symbols.
Syntax-Element-Beschreibung - Syntax 1:
| Syntax-Element | Beschreibung | |
|---|---|---|
view-name
|
View-Name:
|
|
period-clause |
Period-Klausel:
Gibt an, dass für das Ziel der Aktualisierungsoperation eine Period-Klausel gilt. Weitere Informationen siehe Period-Klausel im Abschnitt Grundlegende Syntaxbestandteile. |
|
correlation-name
|
Korrelationsname:
Das Element
Weitere Informationen siehe
|
|
include-columns |
Include Columns-Klausel:
Gibt einen Satz Spalten an, die zusammen mit den
Weitere Informationen siehe include-columns. |
|
SET
|
SET-Klausel:
Wenn sich die Änderungen auf einen View beziehen,
müssen Sie in der Wenn sich die Änderungen auf eine Tabelle beziehen, können Sie in
der |
|
assignment-list
|
Assignment List: Siehe
Assignment
List weiter unten.
|
|
WHERE
search-condition
|
WHERE-Klausel:
In der Wenn Sie keine |
|
WITH
|
WITH - Isolation Level-Klausel:
Diese Klausel ermöglicht die explizite Angabe der beim Auffinden der zu aktualisierenden Zeile zu verwendenden Isolationsstufe. Weitere Informationen siehe
WITH
isolation-level in der Beschreibung des
|
|
CS |
Cursorstabilität | |
RR |
Wiederholtes Lesen | |
RS |
Lesestabilität | |
SKIP LOCKED DATA |
SKIP LOCKED DATA-Klausel:
Gibt an, dass Zeilen übersprungen werden, wenn wegen anderer Transaktionen unverträgliche Sperren auf der Zeile liegen. |
|
QUERYNO
integer
|
QUERYNO-Klausel:
Diese Klausel ermöglicht Ihnen die explizite Angabe der in
|
|
|
|
column-name = |
|
scalar-expression |
|
|
, |
|
DEFAULT |
|||||||
NULL |
In einer Zuordnungsliste
(assignment-list) können Sie einer oder
mehreren Spalten Werte zuweisen. Ein Wert kann entweder ein Skalar-Ausdruck
(scalar-expression),
DEFAULT oder NULL sein. Weitere Informationen siehe
Skalar-Ausdrücke.
Wenn Sie NULL zuweisen, bedeutet dies, dass das
betreffende Feld keinen Wert enthalten soll (auch nicht den Wert
"0" oder "leer").
Alternative:
| (column-name,...) =( |
|
|
scalar-expression |
|
, |
|
|
) | |||
DEFAULT |
|||||||||||
NULL |
|||||||||||
| row-fullselect | |||||||||||
Syntax-Element-Beschreibung
Das Positioned UPDATE-Statement bezieht sich auf einen
Cursor innerhalb einer Datenbankschleife. Es muss daher dieselbe Tabelle bzw.
denselben View referenzieren wie das entsprechende
SELECT-Statement, sonst
erfolgt eine Fehlermeldung. Ein Positioned UPDATE kann nur bei
nicht-cursor-orientierter Selektion verwendet werden.
Common Set-Syntax:
UPDATE
|
|
view-name
SET *
|
|
[WHERE CURRENT OF
CURSOR (r)]
|
view-name
SET
assignment-list
|
Extended Set-Syntax:
UPDATE
|
|
view-name
SET
*
|
|
[WHERE CURRENT OF
CURSOR (r)
|
|
FOR
ROW |
|
[:]host-variable |
|
OF
ROWSET |
|
view-name
SET
assignment-list
|
integer |
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax Symbols.
Syntax-Element-Beschreibung - Syntax 2:
| Syntax-Element | Beschreibung |
|---|---|
view-name
|
View-Name:
|
SET *
|
SET-Klausel:
Wenn sich die Änderungen auf einen View beziehen, müssen Sie in der
Wenn sich die Änderungen auf eine Tabelle beziehen, können Sie in
der |
WHERE CURRENT OF CURSOR
(r) |
Statement-Referenz:
Mit der Notation |
FOR ROW … OF ROWSET |
FOR ROW … OF ROWSET-Klausel:
Diese Klausel gehört zum SQL Extended Set. Die optionale Wenn diese Klausel weggelassen wird, werden alle Zeilen der
aktuellen Zeilengruppe durch die Werte in der Zuordnungsliste ( Diese Klausel kann nicht angegeben werden, wenn
|
DEFINE DATA LOCAL 1 PERS VIEW OF SQL-PERSONNEL 2 NAME 2 AGE ... END-DEFINE ... ASSIGN AGE = 45 ASSIGN NAME = 'SCHMIDT' UPDATE PERS SET * WHERE NAME = 'SCHMIDT' ...
DEFINE DATA LOCAL 1 PERS VIEW OF SQL-PERSONNEL 2 NAME 2 AGE ... END-DEFINE ... UPDATE SQL-PERSONNEL SET AGE = AGE + 1 WHERE NAME = 'SCHMIDT' ...
DEFINE DATA LOCAL 1 PERS VIEW OF SQL-PERSONNEL 2 NAME 2 AGE ... END-DEFINE ... SELECT * INTO PERS FROM SQL_PERSONNEL WHERE NAME = 'SCHMIDT' COMPUTE AGE = AGE + 1 UPDATE PERS SET * WHERE CURRENT OF CURSOR END-SELECT ...
DEFINE DATA LOCAL 1 PERS VIEW OF SQL-PERSONNEL 2 NAME 2 AGE ... END-DEFINE ... SELECT * INTO PERS FROM SQL-PERSONNEL WHERE NAME = 'SCHMIDT' UPDATE SQL-PERSONNEL SET AGE = AGE + 1 WHERE CURRENT OF CURSOR END-SELECT ...