TOP の使用による削除行数の制限
更新 : 2005 年 12 月 5 日
TOP 句を使用すると、DELETE ステートメントで削除される行の数を制限できます。DELETE ステートメントで TOP (n) 句を使用した場合、ランダムに選択される n 行に対して削除操作が実行されます。
たとえば、次のステートメントでは、納期が 2002 年 7 月 1 日より早い 20
行を PurchaseOrderDetail
テーブルからランダムに選択して削除します。
USE AdventureWorks;
GO
DELETE TOP (20)
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO
TOP を使用して、意味のある日時順に行を削除する必要がある場合は、サブセレクト ステートメントに ORDER BY を含めて TOP を使用する必要があります。次のクエリでは、納期が早いものから 10 行を PurchaseOrderDetail
テーブルから削除します。10 行だけを確実に削除するために、サブセレクト ステートメントではテーブルの主キーの列 (PurchaseOrderID
) を指定しています。サブセレクト ステートメントで非キー列を指定すると、指定した列に重複する値が含まれる場合、10 行以上の行が削除される可能性があります。
USE AdventureWorks;
GO
DELETE FROM Purchasing.PurchaseOrderDetail
WHERE PurchaseOrderDetailID IN
(SELECT TOP 10 PurchaseOrderDetailID
FROM Purchasing.PurchaseOrderDetail
ORDER BY DueDate ASC);
GO
参照
概念
DELETE の使用による行の削除
TRUNCATE TABLE の使用による全行削除
結果セット内の行の削除
TOP と PERCENT の使用による結果セットの制限
その他の技術情報
TOP (Transact-SQL)
DELETE (Transact-SQL)
テーブル内のデータの削除
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2005 年 12 月 5 日 |
|