Share via


TOP을 사용하여 삭제되는 행 제한

TOP 절을 사용하여 DELETE 문에서 삭제되는 행 수를 제한할 수 있습니다. DELETE 문에 TOP (n) 절을 사용하면 n개의 행을 임의로 선택하여 삭제 작업이 수행됩니다.

예를 들어 다음 문은 PurchaseOrderDetail 테이블에서 기한이 2002년 7월 1일 이전인 행 중 20개의 행을 임의로 선택하여 삭제합니다.

USE AdventureWorks2008R2;
GO
DELETE TOP (20) 
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO

TOP을 사용하여 시간 순서로 행을 삭제해야 하는 경우에는 하위 SELECT 문에서 ORDER BY를 지정하는 방식으로 TOP을 사용해야 합니다. 다음 쿼리는 PurchaseOrderDetail 테이블에서 기한이 가장 빠른 10개의 행을 삭제합니다. 10개의 행만 삭제하기 위해 하위 SELECT 문에서 지정한 열(PurchaseOrderID)은 테이블의 기본 키입니다. 하위 SELECT 문에 키가 아닌 열을 사용하면 지정한 열에 중복 값이 있을 경우 10개가 넘는 행이 삭제될 수 있습니다.

USE AdventureWorks2008R2;
GO
DELETE FROM Purchasing.PurchaseOrderDetail
WHERE PurchaseOrderDetailID IN
   (SELECT TOP 10 PurchaseOrderDetailID 
    FROM Purchasing.PurchaseOrderDetail 
    ORDER BY DueDate ASC);
GO