[SQL SERVER 2000] Fonction utilisateur : boucle sans fin
Bonjour,
Voila mon problème : j'ai une table MODIF_MODELE_SAVE ou je stocke toutes les informations des modifications apportées
Code:
1 2 3 4 5 6 7
|
MODIF_MODELE_SAVE
-------------------------
id ID_MODELE_REMPLACEMENT ID_MODELE_ORIGINE
1 502 495
2 503 502
3 506 505 |
A partir de cette table, je souhaite trouver toutes les modifications apportées à un modèle : par exemple, pour le modèle 495, je veux la ligne 1 (495->502) et la ligne 2 (502->503) et pas la lgne 3
Pour cela, après toutes mes recherches, j'ai pensée à une table temporaire, j'ai donc créé une fonction utilisateur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
create function Test (@arg_id_modele_origine as integer)
returns @integers table (id_modele integer not null)
AS
begin
declare @T table (id_modele integer)
declare @arg_id_modele_origine2 integer
while @arg_id_modele_origine is not null
begin
select @arg_id_modele_origine2=id_modele_remplacement from modif_modele_save where id_modele_origine=@arg_id_modele_origine
insert into @T values(@arg_id_modele_origine)
set @arg_id_modele_origine=@arg_id_modele_origine2
if @arg_id_modele_origine is null
break
end
return
end |
que j appelle de cette manière
Code:
1 2
|
select * from dbo.Test(495) |
Et il se trouve que cela boucle sans fin.
Ou se trouve l'erreur , et pourriez me dire pourquoi? Peut-être que je m'y prend mal pour résoudre le problème, je prend aussi toutes autres pistes :D .