IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL2005][TSQL] Procédure Stockée


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [SQL2005][TSQL] Procédure Stockée
    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.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Salut, une méthode parmis d'autres possible :
    (A noter que dans les procs la table temporaire a toujours le même nom, mais c'est ps une obligation. C'est juste pour pouvoir faire des copier-coller sans me prendre la tête )

    La proc appelante
    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
     
    CREATE PROCEDURE sp_Insert 
    @ValInsert int
     AS
    BEGIN
    declare @value int 
    	create table #TheTable (Valeur int null)
    	set @Value = @ValInsert
     
    	insert into #TheTable (Valeur)
    	exec sp_Insert1 @Value
     
    	set @Value = @ValInsert + 1
    	insert into #TheTable (Valeur)
    	exec sp_Insert2 @Value
     
    	set @Value = @ValInsert + 78
    	insert into #TheTable (Valeur)
                 select @Value
     
    	select * from #TheTable 
     
    	drop table #TheTable 
    END
    Les procs appelées
    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 sp_INSERT1
    @INT int
    as
    BEGIN
    	CREATE TABLE  #TheTable (val1 int null)
    	insert into #TheTable select @INT
     
    	select val1 from #TheTable
    	drop table #TheTable
    END
     
    CREATE PROCEDURE sp_Insert2 
    @INT int
    AS
    BEGIN
    	create table  #TheTable (Val1 int null)
    	insert into #TheTable select @INT
     
    	select Val1 from #theTable
     
    	drop table #TheTable
    END

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Merci bien Zers, j'étais parti pour me compliquer la vie avec des curseurs et ta méthode marche nickel !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/07/2008, 08h25
  2. [SQL2005] [TSQL] Procédure stockée
    Par Invité dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 28/12/2007, 13h39
  3. [SQL2005] [TSQL] Procédure stockée et paramètres
    Par Invité dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 13/12/2007, 13h53
  4. [SQL2005] soucis procédures stockées
    Par f_bobo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/09/2006, 11h13
  5. [SQl 2000] [TSQL] Procédures stockées dynamiques
    Par pihuete dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/05/2006, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo