SQL Server: Infinies, TOUT EXISTE en boucle

J'ai un problème avec les éléments suivants lors de EXISTE boucle. Pourriez-vous envisager ce qui peut être la raison pour laquelle il est en boucle et pourquoi il n'a pas de mise à jour des valeurs?

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

EDIT 1: Parce que je n'ai pas trouver de solution dans le premier moment, j'ai créé curseur et la mise à jour des données de cette façon. Après que j'ai trouvé qui a laissé quelques lignes qui ne sont pas à jour, parce que la fonction a un problème avec les données et n'a pas pu mettre à jour les valeurs pour que les lignes. Dans ce cas, les champs ont été toujours vide et la boucle est devenu sans fin.

où est le code que vous avez écrit pour les " ()"
Je ne comprends pas pourquoi vous avez besoin de "isnull(brojRacuna,")="" existe déclaration.
J'ai accidentellement laissé une partie de code: "et partija='1111' ' Nous n'avons pas besoin ici, parce que je veux mettre à jour toutes les lignes où BrojRacuna est NULL.

OriginalL'auteur Nemanja Vujacic | 2011-10-03