Limitar actualización de datos mediante TOP
Puede utilizar la cláusula TOP para limitar el número de filas que se modifican en una instrucción UPDATE. Cuando se utiliza una cláusula TOP (n) con UPDATE, la operación de actualización se realizará en una selección aleatoria de n número de filas. Por ejemplo, suponga que desea reducir las tareas de ventas de uno de los vendedores con más experiencia asignando algunos clientes a un vendedor con menos experiencia. La siguiente consulta asigna una muestra aleatoria de 10 clientes de un vendedor a otro.
USE AdventureWorks2008R2;
UPDATE TOP (10) Sales.Store
SET SalesPersonID = 276
WHERE SalesPersonID = 275;
GO
Si necesita utilizar TOP para aplicar actualizaciones por un orden cronológico, debe utilizarla junto con ORDER BY en una instrucción de subselección. En el siguiente ejemplo se actualizan las horas de vacaciones de los 10 empleados cuyas fechas de alta son más antiguas.
UPDATE HumanResources.Employee
SET VacationHours = VacationHours + 8
FROM (SELECT TOP 10 BusinessEntityID FROM HumanResources.Employee
ORDER BY HireDate ASC) AS th
WHERE HumanResources.Employee.BusinessEntityID = th.BusinessEntityID;
GO