Beschränken von zu löschenden Zeilen mithilfe von TOP
Aktualisiert: 05. Dezember 2005
Mithilfe der TOP-Klausel können Sie die Anzahl der Zeilen beschränken, die in einer DELETE-Anweisung gelöscht werden. Wenn eine TOP (n)-Klausel zusammen mit DELETE verwendet wird, wird der Löschvorgang auf eine zufällige Auswahl von n Zeilen ausgeführt.
Die folgende Anweisung löscht beispielsweise 20
zufällige Zeilen mit Fälligkeitsdaten vor dem 1. Juli 2002 aus der PurchaseOrderDetail
-Tabelle.
USE AdventureWorks;
GO
DELETE TOP (20)
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO
Wenn Sie die TOP-Klausel verwenden müssen, um Zeilen in einer sinnvollen Reihenfolge zu löschen, müssen Sie sie zusammen mit ORDER BY in einer untergeordneten SELECT-Anweisung verwenden. Die folgende Abfrage löscht die zehn Zeilen der PurchaseOrderDetail
-Tabelle mit den frühesten Fälligkeitsdaten. Die in der untergeordneten SELECT-Anweisung angegebene Spalte (PurchaseOrderID
) ist der Primärschlüssel der Tabelle, um sicherzustellen, dass nur 10 Zeilen gelöscht werden. Wird in der untergeordneten SELECT-Anweisung eine Nichtschlüsselspalte verwendet, werden möglicherweise mehr als 10 Zeilen gelöscht, wenn die angegebene Spalte doppelte Werte enthält.
USE AdventureWorks;
GO
DELETE FROM Purchasing.PurchaseOrderDetail
WHERE PurchaseOrderDetailID IN
(SELECT TOP 10 PurchaseOrderDetailID
FROM Purchasing.PurchaseOrderDetail
ORDER BY DueDate ASC);
GO
Siehe auch
Konzepte
Löschen von Zeilen mithilfe von DELETE
Löschen aller Zeilen mit TRUNCATE TABLE
Löschen von Zeilen in Resultsets
Begrenzen von Resultsets mit TOP und PERCENT
Andere Ressourcen
TOP (Transact-SQL)
DELETE (Transact-SQL)
Löschen von Daten aus einer Tabelle
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
05. Dezember 2005 |
|