Supongamos que tengo miles de filas para actualizar.¿Cómo puedo crear un ciclo en una instrucción UPDATE que funciona hasta que no quede ninguna fila para actualizar?
Y planeo hacer la actualización de forma iterativa; al actualizar solo 1000 filas por iteración.
Y quiero repetir hasta que no queden filas para actualizar.
¿Cómo puedo ejecutar el script T-SQL a continuación hasta que no haya una fila para actualizar?
-- 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
¿Por qué quiere actualizar solo 1000 max cada vez? Para mí, parece que eliminar la cláusula WHERE resolvería su problema. Pero específicamente dices que quieres hacerlo 1000 veces, ¿me pregunto por qué? – Ruben
Di los números como un ejemplo, pero la razón es para evitar tiempos de espera de transacción. Y la razón secundaria es: Curiosidad en la implementación. – pencilCake