Bonjour,
Je voudrais faire un select imbriqué mais pour des raisons de modularité le faire en faisant une procédure stockée qui fait un select avec comme paramètre le tableau de résultat de l'appel d'une seconde procédure stockée appelée dans cette première.
en gros j'aurais une procédure 1 appelée par la procédure 2
la procédure 1 renverrait un tableau de int :
la seconde fait un 2 eme select avec une clause where sur tous les résultats de l'appel de la première procédure stockée, et renvoie le tout.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE PROCEDURE dbo.Table1 ( @id1 INT @ids(<truc pour avoir éventuellement une liste>) OUTPUT ) AS SELECT dbo.Table1.id2, FROM dbo.Table1 WHERE dbo.Table1.id1 = @id1; <truc qui écrit tous les dbo.Table1.id2 dans @ids>
sauriez vous si c'est possible et comment compléter cet exemple type pour qu'il fonctionne?
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
18
19
20
21
22
23
24
25 CREATE PROCEDURE dbo.Table2 ( @id2 INT, @id INT ) AS DECLARE @i INT DECLARE @id1 INT DECLARE @ids(<truc pour avoir éventuellement une liste>) INT SET @id1 = id2 EXECUTE MaBaseDeDonnée.dbo.MaProstock @id1, @ids OUTPUT GO WHILE @i <= datalength(@ids) BEGIN SELECT dbo.Table2.id3, FROM dbo.Table2 WHERE dbo.Table2.id4 = @ids[i]; i++ END
Merci à l'avance
Partager