Załóżmy, że mam tysiące wierszy do zaktualizowania.Jak utworzyć pętlę na instrukcji UPDATE, która działa, dopóki nie zostanie żaden wiersz do aktualizacji?
I planuję aktualizować iteracyjnie; poprzez aktualizację tylko 1000 wierszy na iterację.
I chcę iterować, dopóki nie będzie żadnych wierszy do aktualizacji.
Jak mogę uruchomić skrypt T-SQL poniżej, dopóki nie będzie żadnego wiersza do aktualizacji?
-- 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
Dlaczego chcesz aktualizować tylko 1000 maks. Za każdym razem? Wydaje mi się, że usunięcie klauzuli WHERE rozwiązałoby twój problem. Ale konkretnie mówisz, że chcesz to robić 1000 razy tylko zastanawiam się, dlaczego? – Ruben
Podałem liczby jako przykład, ale powodem jest to, aby zapobiec przekroczeniu limitu czasu transakcji. Drugi powód to: Ciekawość implementacji. – pencilCake