Version 6.3.8 für Windows
 —  Statements  —

DELETE - SQL

Dieses Dokument behandelt folgende Themen:


Funktion

Das SQL-Statement DELETE dient dazu, Reihen aus einer Tabelle zu löschen, ohne einen Cursor zu verwenden (Searched DELETE), oder Reihen aus einer Tabelle zu löschen, auf die der Cursor zeigt (Positioned DELETE).

Seitenanfang

Syntax-Beschreibung

Zwei unterschiedliche Strukturen sind möglich:

Syntax 1 — Searched DELETE

Searched DELETE ist ein eigenständiges Statement, das unabhängig von einem SELECT-Statement verwendet werden kann. Mit einem einzigen Statement können sie keine, eine, mehrere oder alle Reihen einer Tabelle löschen. Welche Reihen gelöscht werden, bestimmen Sie mit einer Suchbedingung (search-condition), die auf die Tabelle angewandt wird. Außerdem ist es möglich, dem Tabellennamen einen correlation-name zuzuweisen.

Anmerkung:
Die Anzahl der Reihen, die mit einem Searched DELETE tatsächlich gelöscht wurden, kann mit der Systemvariablen *ROWCOUNT ermittelt werden.

Common Set-Syntax:

DELETE FROM table-name [(correlation-name )] [WHERE search-condition]

Extended Set-Syntax:

DELETE FROM table-name [(correlation-name )] [WHERE search-condition]

WITH

RR

[QUERYNO integer]
RS
CS

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Syntax-Element-Beschreibung:

FROM table-name
FROM-Klausel:

In dieser Klausel wird die Tabelle angegeben, aus der die Reihen gelöscht werden sollen.

correlation-name

Als Option kann dem Tabellen-Namen ein correlation-name zugewiesen werden.

WHERE search-condition
WHERE-Klausel:

Diese Klausel wird benutzt, um die Selektionskriterien für die zu löschenden Reihen anzugeben.

Wenn keine WHERE-Klausel angegeben wird, wird die gesamte Tabelle gelöscht.

WITH
WITH Isolation Level-Klausel:

Diese Klausel gehört zum SQL Extended Set.

Diese Klausel ermöglicht die explizite Angabe des beim Suchen der zu löschenden Reihe benutzten Isolation Level.

Diese Klausel gilt nur für DB2-Datenbanken. Bei anderen Datenbanken verursacht sie einen Laufzeitfehler.

QUERYNO integer
QUERYNO-Klausel:

Diese Klausel gehört zum SQL Extended Set.

Diese Klausel wir zurzeit nicht unterstützt und wird ignoriert.

Syntax 2 — Positioned DELETE

Ein Positioned DELETE bezieht sich auf einen Cursor innerhalb einer Datenbankschleife. Es muss daher dieselbe Tabelle referenzieren wie das entsprechende SELECT-Statement, sonst wird eine Fehlermeldung ausgegeben. Ein Positioned DELETE kann nur mit cursor-orientierter Selektion verwendet werden.

In seiner Funktion entspricht Positioned DELETE dem gewöhnlichen Natural-Statement DELETE.

DELETE FROM table-name WHERE CURRENT OF CURSOR [(r)]

Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.

Syntax-Element-Beschreibung:

FROM table-name WHERE CURRENT OF CURSOR
FROM-Klausel:

In dieser Klausel wird die Tabelle angegeben, aus der die Reihen gelöscht werden sollen.

(r)
Statement-Referenz:

Die Notation (r) dient zur Referenzierung des Statements, das zur Selektion der zu löschenden Reihe verwendet wurde.

Wenn keine Statement-Referenz angegeben wird, dann bezieht sich das DELETE-Statement auf die jeweils innerste aktive Verarbeitungsschleife, mit der der Datensatz, der gelöscht werden soll, ausgewählt wurde.

Seitenanfang