如何在tsql中实现do-while循环

问题描述 投票:30回答:1

我试图弄清楚如何在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,它首先评估条件,如果该条件为true,则执行该语句。

我正在考虑这样一种情况,例如对表执行UPDATE语句,直到某些条件触发y并执行上一次执行的UPDATE。

最重要的是,我正在寻找解决这个问题的方法(在WHILE之前复制UPDATE对我来说没有太大意义,因为UPDATE语句可以任意长且复杂)]


EDIT:我要解决的问题涉及同一表下的多个UPDATE语句,每个语句都采用并转换先前迭代中的值。仅用一条大的UPDATE语句就不可能做到这一点,因为每一行仅被评估和更新一次,因此循环是我弄清楚使此混乱工作的唯一方法。

sql sql-server tsql while-loop control-flow
1个回答
43
投票

这实际上是一个Do-While循环:

© www.soinside.com 2019 - 2024. All rights reserved.