WHILE EXISTS 루프에 문제가 있습니다. 왜 그것이 무한 반복이고 왜 값을 업데이트하지 않는지 이유가 무엇인지 생각해 볼 수 있습니까?SQL Server : 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()"로 작성한 코드는 어디에 있습니까 –
exist 문에 "isnull (brojRacuna, '') = ''"가 필요한 이유를 모르겠습니다. – bksi
실수로 코드의 한 부분을 남겼습니다 : 'and partija ='1111 ''BrojRacuna가 NULL 인 모든 행을 업데이트하려고하기 때문에 여기에 필요하지 않습니다. –