Ограничение удаляемых строк с помощью предложения TOP
Изменения: 5 декабря 2005 г.
Число строк, удаляемых инструкцией DELETE, можно ограничивать с помощью предложения TOP. Если с инструкцией DELETE применяется предложение TOP (n), то операция удаления производится над n случайно выбранных строк.
Например, следующая инструкция удаляет 20
случайных строк из таблицы PurchaseOrderDetail
, имеющих дату ранее 1 июля 2002 г.:
USE AdventureWorks;
GO
DELETE TOP (20)
FROM Purchasing.PurchaseOrderDetail
WHERE DueDate < '20020701';
GO
Если необходимо с помощью предложения TOP удалять строки в значимом хронологическом порядке, то вместе с ним в инструкции вложенного запроса выборки следует использовать ORDER BY. Следующий запрос удаляет из таблицы PurchaseOrderDetail
10 строк, имеющих самую раннюю дату. Чтобы гарантировать удаление только 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)
Удаление данных в таблице
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
5 декабря 2005 г. |
|