Ograniczanie usunięte wiersze, korzystając z góry
Aby ograniczyć liczbę wierszy, które są usuwane w instrukcja DELETE można użyć klauzula TOP.Gdy GÓRNY (n) jest używana klauzula z usuwania, operacja usuwania jest wykonywane na losowo wybranych n liczbę wierszy.
Na przykład, następująca instrukcja usuwa 20 losowe wiersze z PurchaseOrderDetail tabela, które mają z powodu dat wcześniejszych niż 1 lipca 2002 r..
USE AdventureWorks2008R2;
GO
DELETE TOP (20)
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO
Jeśli masz umożliwia usuwanie wierszy w kolejności chronologicznej znaczące GÓRNEJ, należy użyć góry wraz z ORDER BY w instrukcja subselect.Następująca kwerenda usuwa wiersze 10 z PurchaseOrderDetail tabela mają daty najwcześniejszej płatności.Aby zapewnić tylko 10 wierszy usunięty, kolumna podana w instrukcja subselect (PurchaseOrderID) jest klucz podstawowy tabela.Za pomocą kolumny nonkey w Podselekcja instrukcja może spowodować usunięcie więcej niż 10 wierszy Jeśli określona kolumna zawiera zduplikowane wartości.
USE AdventureWorks2008R2;
GO
DELETE FROM Purchasing.PurchaseOrderDetail
WHERE PurchaseOrderDetailID IN
(SELECT TOP 10 PurchaseOrderDetailID
FROM Purchasing.PurchaseOrderDetail
ORDER BY DueDate ASC);
GO
Zobacz także