Beschränken aktualisierter Daten mithilfe von TOP
Mithilfe der TOP-Klausel können Sie die Anzahl der Zeilen beschränken, die in einer UPDATE-Anweisung geändert werden. Wenn eine TOP (n)-Klausel zusammen mit UPDATE verwendet wird, wird der Aktualisierungsvorgang für eine zufällige Auswahl von n Zeilen ausgeführt.Angenommen, Sie möchten einen Ihrer erfahrenen Vertriebsmitarbeiter entlasten, indem Sie einer Nachwuchskraft einige seiner Kunden zuweisen. Mit der folgenden Abfrage wird eine zufällige Stichprobe von 10 Kunden von einem Vertriebsmitarbeiter zum anderen zugewiesen.
USE AdventureWorks;
GO
UPDATE TOP (10) Sales.Store
SET SalesPersonID = 276
WHERE SalesPersonID = 275;
GO
Wenn TOP verwendet werden muss, um Aktualisierungen in einer sinnvollen Abfolge anzuwenden, muss in einer untergeordneten SELECT-Anweisung TOP gemeinsam mit ORDER BY verwendet werden. Mit dem nachfolgenden Beispiel werden die Urlaubsstunden der 10 Mitarbeiter mit dem frühesten Einstellungsdatum aktualisiert.
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