Bonjour,
Voila mon problème : j'ai une table MODIF_MODELE_SAVE ou je stocke toutes les informations des modifications apportées
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Pour cela, après toutes mes recherches, j'ai pensée à une table temporaire, j'ai donc créé une fonction utilisateur :
que j appelle de cette manière
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Et il se trouve que cela boucle sans fin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from dbo.Test(495)
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 .
Partager