Wie kann ich eine Schleife erstellen, die auf einer UPDATE-Anweisung funktioniert, bis es keine Zeilen-Links zu aktualisieren?

Davon ausgehen, dass ich Tausende von Zeilen zu aktualisieren.

Und ich planen, zu tun, das update iterativ; nur durch die Aktualisierung von 1000 Zeilen pro iteration.

Und ich will zu iterieren, bis es keine Zeilen gibt, Links zu aktualisieren.

Wie kann ich das ausführen der T-SQL-Skript unten, bis es keine Zeile zu aktualisieren?

-- TODO: Create a loop so that it exists when there is no ROW left to be updated; 
-- how can I do it?

UPDATE tableToUpdate
SET IsVegetable = 1
WHERE Id IN
               (SELECT TOP 1000 Id
                FROM tableToUpdate
                WHERE Date = '2011-07-23 14:00')

-- Loop ends
Warum willst du etwas aktualisieren, nur 1000-max jedes mal? Mir scheint es, dass das entfernen der WHERE-Klausel würde Ihr problem lösen. Aber Sie angeben, sagen Sie, Sie wollen, es zu tun, 1000 mal im gerade Fragen, warum?
Ich gab die zahlen ein Beispiel, aber der Grund ist zu verhindern, dass transaction time-out. Und sekundärer Grund ist : die Neugierde auf die Umsetzung.

InformationsquelleAutor pencilCake | 2011-12-29

Schreibe einen Kommentar