Ограничение обновляемых данных с помощью предложения TOP
Предложение TOP предназначено для ограничения числа строк, изменяемых в процессе выполнения инструкции UPDATE. Если в инструкции UPDATE указано предложение TOP (n), операция обновления будет выполнена над произвольным подмножеством в n строк. Для примера предположим, что необходимо снизить нагрузку на одного из старших менеджеров по продажам, передав нескольких из его заказчиков младшему менеджеру. Следующий запрос переназначит 10 случайно выбранных заказчиков от одного менеджера по продажам к другому.
USE AdventureWorks;
GO
UPDATE TOP (10) Sales.Store
SET SalesPersonID = 276
WHERE SalesPersonID = 275;
GO
Если нужно применить изменения с предложением TOP в определенной последовательности, укажите во вложенном запросе SELECT предложение ORDER BY. В следующем примере изменяется длительность отпуска для 10 сотрудников, имеющих наибольший стаж работы.
UPDATE HumanResources.Employee
SET VacationHours = VacationHours + 8
FROM (SELECT TOP 10 EmployeeID FROM HumanResources.Employee
ORDER BY HireDate ASC) AS th
WHERE HumanResources.Employee.EmployeeID = th.EmployeeID;
GO
См. также