Я пытаюсь понять, как реализовать это в TSQL
do
update stuff set col = 'blah' where that_row = 'the right one'
select trash from stuff ...
until some_condition
Единственное итеративное предложение потока управления, предоставляемое Transact-SQL, - это while (condition) sentences
, которое сначала оценивает условие, и если это условие истинно, тогда выполняйте предложение.
Я имею в виду сценарий, например, выполнение инструкции UPDATE по таблице до тех пор, пока не будет выполнено какое-то условие y, выполняемое последним UPDATE.
Самое главное, я ищу менее грязный подход к этой проблеме (Дублирование UPDATE до WHILE не имеет для меня слишком большого смысла, поскольку предложение UPDATE может быть сколь угодно длинным и сложным)
EDIT. Проблема, которую я пытаюсь решить, включает в себя несколько операторов UPDATE в одной таблице, каждая из которых принимает и преобразует значения из предыдущих итераций. Это невозможно сделать только в одном большом заявлении UPDATE, так как каждая строка будет оцениваться и обновляться только один раз, поэтому цикл - единственный способ, которым я могу понять, чтобы этот беспорядок работал.