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.
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
Vous devez vous connecter pour publier un commentaire.
Je ne comprends pas pourquoi vous sélectionnez le partija valeur, puisque vous l'avez dans la clause where, vous pouvez simplifier beaucoup de choses de cette façon:
Par ailleurs, si vous avez une boucle sans fin, peut-être la fonction dev_brojracuna ne retourne pas la valeur correcte, et brojRacuna reste inchangé.
Ok, quand je post il n'y avait pas ce commentaire 🙂 de toute façon, avez-vous vérifié la brojRacuna fonction?
Bien sûr, j'ai annoncé le commentaire juste au cas où vous ne l'avez pas vu. 😉 Vous pouvez prendre un coup d'oeil à EDIT1, il est écrit à propos de la fonction. Merci pour la réponse et suggestions!
OriginalL'auteur Dippi