que estoy tratando de averiguar cómo implementar esto en TSQLCómo implementar un bucle do-while en tsql
do
update stuff set col = 'blah' where that_row = 'the right one'
select trash from stuff ...
until some_condition
La única frase flujo de control iterativo proporcionada por Transact-SQL es while (condition) sentences
que primero evalúa 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.
más importante, estoy buscando el enfoque menos sucia a este problema (Duplicación de la actualización antes de la MIENTRAS no tiene mucho sentido para mí como la sentencia ACTUALIZACIÓN puede ser arbitrariamente larga y compleja)
EDIT: El problema que estoy tratando de resolver implica varias 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.
Si está pensando en el control de flujo para el código de la base de datos, lo está haciendo mal. –
No sea tan inflexible, a veces la lógica de negocio debe desarrollarse en procedimientos almacenados. – Rodrigo
@rodrigo, él no está hablando de que sea un proceso almacenado, está hablando de usar la teoría de conjuntos y no de un bucle. Es posible evitar el ciclo aproximadamente el 99% del tiempo y SIEMPRE es preferible hacerlo si puede. – HLGEM