Bonjour,

J'ai un souci au niveau de la récupération de résultat d'une procédure stockée :

J'ai une procédure stockée générale qui prend 6 paramétres en entrée et qui se base sur l'execution d'une procédure stockée utilisée 2 fois :

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
CREATE PROCEDURE PS_MasterST3 
	-- Add the parameters for the stored procedure here
	@Periode datetime,
	@Com int,
	@PIP int, --Période borne inf prev
	@PSP int, --Période borne sup prev
	@PIC int, --Période borne inf CA à date
	@PSC int, --Période borne sup CA à date
 
 
AS
 
create table #v (nom_com nvarchar(50),nomu_cli nvarchar(50),typ nvarchar(50),mon_typ int,dte_typ datetime);--table temporaire dans laquelle je souhaite stocker les résultats des 2 procédures ci dessous.
 
 
EXEC dbo.PS_ST32 'Fac',@Periode,@PIC,@PSC,@Com,'#v' 
 
EXEC dbo.PS_ST32 'Pre',@Periode,@PIP,@PSP,@Com,'#v'
 
SELECT *
FROM #v
 
GO
La procédure stockée dbo.PS_ST32 prend 6 paramétres en entrée dont un fixé, elle me permet de récupérer 5 colonnes d'une table de ma base de données et de stocker ces données dans une table temporaire :

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
CREATE PROCEDURE PS_ST32
	-- Add the parameters for the stored procedure here
	@tipe nvarchar(50),
	@Periode datetime,
	@PInf int,
	@PSup int,
	@Comm int,
	@T nvarchar(50)
 
AS
		--récupération du premier client du portefeuille du commercial passé en paramétre.
		--déclaration des variables et du curseur.
DECLARE @nom_cli nvarchar(50)
DECLARE @nom_com nvarchar(50)
DECLARE client_curseur CURSOR
		FOR SELECT nom_com,nomu_cli
			FROM ST3_2
			WHERE id_com=@Comm
			ORDER BY nomu_cli
		OPEN client_curseur
		FETCH NEXT FROM client_curseur INTO @nom_com,@nom_cli
 
CLOSE client_curseur;
DEALLOCATE client_curseur;
 
		--création du nombre de colonne fonction de la période choisie par l'utilisateur
		--création d'une table temporaire pour stocker les lignes.
        --create table #v (nom_com nvarchar(50),nomu_cli nvarchar(50),typ nvarchar(50),mon_typ int,dte_typ datetime);
		DECLARE @dte_typ2 datetime
 
 
		SET @dte_typ2 = DATEADD("mm",-@PInf,DATEADD("dd",-DATEDIFF("dd",01,day(@Periode)),@Periode))
 
 
		WHILE (@dte_typ2 BETWEEN DATEADD("mm",-@PInf,DATEADD("dd",-DATEDIFF("dd",01,day(@Periode)),@Periode)) AND DATEADD("mm",@PSup,DATEADD("dd",-DATEDIFF("dd",01,day(@Periode)),@Periode)))
 
        BEGIN
 
		  Insert into @T values (@nom_com,@nom_cli,@tipe,'0',@dte_typ2)
		  SET @dte_typ2 = DATEADD("mm",+1,@dte_typ2)
        END
GO

Je souhaite récupérer les résultats des 2 procédures stockées mais ça marche pas en créant une table dans la procédure stockée générale et en l'alimentant à l'aide de mon autre procédure stockée (dbo.PS_ST32)...

Comment est ce que je peux m'y prendre ?

Merci d'avance.