while w3schools tabla recorrer for sql sql-server tsql while-loop flow-control

w3schools - while sql server recorrer tabla



Cómo implementar un ciclo do-while en tsql (1)

Esto es efectivamente un ciclo Do-While:

WHILE (1=1) BEGIN -- Do stuff... IF (some_condition is true) BREAK; END

Pero como señaló @Joel Coehoorn, siempre trate de usar un enfoque basado en conjuntos primero. Solo recurriría a un bucle si no puedo pensar en una forma de resolver el uso de operaciones de conjunto.

Estoy tratando de imaginar cómo implementar esto en TSQL

do update stuff set col = ''blah'' where that_row = ''the right one'' select trash from stuff ... until some_condition

La única oración de flujo de control iterativo provista por Transact-SQL es while (condition) sentences primero evalúan la condición y si esa condición es verdadera, entonces ejecuta la oración.

Estoy pensando en un escenario como ejecutar una instrucción UPDATE sobre una tabla hasta que se active alguna condición y se logre la última ACTUALIZACIÓN ejecutada.

Lo que es más importante, estoy buscando el enfoque menos sucio para este problema (Duplicar la ACTUALIZACIÓN antes del MOMENTO no tiene demasiado sentido para mí, ya que la frase ACTUALIZAR puede ser arbitrariamente larga y compleja)

EDITAR : El problema que estoy tratando de resolver involucra múltiples instrucciones UPDATE bajo la misma tabla, cada una tomando y transformando los valores de las iteraciones anteriores. Esto no es posible en una sola declaración grande de ACTUALIZACIÓN, ya que cada fila se evaluará y actualizará solo una vez, por lo que un ciclo es la única forma en que puedo resolverlo para que funcione.