Share via


Impostazione di limiti per i dati aggiornati utilizzando la clausola TOP

È possibile utilizzare la clausola TOP per limitare il numero di righe modificate in un'istruzione UPDATE. Quando si utilizza una clausola TOP (n) con l'istruzione UPDATE, l'operazione di aggiornamento viene eseguita su una selezione casuale di un numero n di righe. Si supponga, ad esempio, di voler diminuire il carico di lavoro dei venditori senior assegnando alcuni clienti a un venditore junior. Tramite la query seguente viene assegnato un campione casuale di 10 clienti da un venditore a un altro.

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

Se si desidera utilizzare TOP per applicare gli aggiornamenti in un ordine cronologico significativo, è necessario utilizzare questa clausola insieme a ORDER BY in un'istruzione di selezione secondaria. Nell'esempio seguente le ore di ferie dei 10 dipendenti vengono aggiornate con le prime date di assunzione.

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