我有以下WHILE EXISTS循环的问题。你能否考虑一下为什么它是无限循环以及它为什么不更新值?SQL Server:无尽WHILE EXISTS循环
declare @part varchar(20)
while exists ((select top 1 * from part1 p where isnull(brojRacuna,'')=''))
begin
set @part=''
set @part=(select top 1 partija from part1 p where isnull(brojRacuna,'')='')
begin tran
update part1
set BrojRacuna= (select dbo.dev_brojracuna (@part))
where partija like @part
print @part
commit
end
编辑1:因为我没有找到在第一时刻的解决方案,我以这种方式创建光标和更新的数据。之后,我发现左边的行没有更新,因为函数有数据问题,无法更新该行的值。在那种情况下,字段总是空的,循环变得无止境。
其中是你写的代码“exists()” –
我不明白你为什么需要“isnull(brojRacuna,'')=''”在exists语句中。 – bksi
我不小心遗留了一部分代码:'and partija ='1111''我们不需要它,因为我想更新BrojRacuna为NULL的所有行。 –