Löschen von Daten
So wie die INSERT-Anweisung einer Tabelle immer ganze Zeilen hinzufügt, entfernt die DELETE-Anweisung immer ganze Zeilen.
Verwenden von DELETE zum Entfernen bestimmter Zeilen
DELETE wird für eine Reihe von Zeilen verwendet, die entweder durch eine Bedingung in einer WHERE-Klausel oder in einem Join definiert sind. Die WHERE-Klausel in einer DELETE-Anweisung hat die gleiche Struktur wie eine WHERE-Klausel in einer SELECT-Anweisung.
Hinweis
Es muss unbedingt beachtet werden, dass mit einer DELETE-Anweisung ohne eine entsprechende WHERE-Klausel alle Zeilen aus einer Tabelle entfernt werden. Verwenden Sie die DELETE-Anweisung mit Vorsicht.
Der folgende Code zeigt die grundlegende Syntax der DELETE-Anweisung:
DELETE [FROM] <TableName>
WHERE <search_conditions>;
Im folgenden Beispiel wird die DELETE-Anweisung verwendet, um alle eingestellten Produkte aus der angegebenen Tabelle zu entfernen. Die Tabelle enthält eine Spalte mit dem Namen discontinued, und für Produkte, die nicht mehr verfügbar sind, weist die Spalte den Wert 1 auf.
DELETE FROM Production.Product
WHERE discontinued = 1;
Verwenden von TRUNCATE TABLE zum Entfernen aller Zeilen
Eine DELETE-Anweisung ohne WHERE-Klausel entfernt alle Zeilen aus einer Tabelle. Aus diesem Grund wird die DELETE-Anweisung in der Regel bedingt mit einem Filter in der WHERE-Klausel verwendet. Wenn Sie wirklich alle Zeilen entfernen und eine leere Tabelle erhalten möchten, können Sie die TRUNCATE TABLE-Anweisung verwenden. Diese Anweisung lässt keine WHERE-Klausel zu und entfernt immer alle Zeilen in einem Vorgang. Hier ist ein Beispiel angegeben:
TRUNCATE TABLE Sales.Sample;
TRUNCATE TABLE ist effizienter als DELETE, wenn Sie wirklich alle Zeilen entfernen möchten.