Udostępnij za pośrednictwem


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