Compartilhar via


Limitando dados atualizados usando TOP

Você pode usar a cláusula TOP para limitar o número de linhas que são modificadas em uma instrução UPDATE. Quando uma cláusula TOP (n) é usada com UPDATE, a operação de atualização será executada em uma seleção aleatória de um número n de linhas. Por exemplo, suponha que você queira aliviar a carga de vendas de um de seus vendedores seniores atribuindo alguns clientes a um vendedor júnior. A consulta a seguir atribui uma amostra aleatória de 10 clientes de um vendedor para outro.

USE AdventureWorks2008R2;
UPDATE TOP (10) Sales.Store
SET SalesPersonID = 276
WHERE SalesPersonID = 275;
GO

Caso seja necessário usar a cláusula TOP para aplicar atualizações em uma ordem cronológica significativa, será preciso usar TOP junto com ORDER BY em uma instrução de subseleção. O exemplo a seguir atualiza as horas de férias dos 10 funcionários com as datas de contratação mais antigas.

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