Bonjour à tous,
Est-il possible de récupérer le résultat d'un procédure stockée dans une autre procédure stockée ?
Si oui, quelle est la syntaxe à utiliser ?
Merci d'avance pour vos réponses.
Bonjour à tous,
Est-il possible de récupérer le résultat d'un procédure stockée dans une autre procédure stockée ?
Si oui, quelle est la syntaxe à utiliser ?
Merci d'avance pour vos réponses.
Qu'est ce que tu veut dire par résultats?
C'est une valeur ou est-ce un/des ResultSet?
Si c'est une valeur c'est simple il suffit de créer un paramètre de ta procédure en OUTPUT. Si le résultat est une table tu peux soit créer une variable de type TABLE et OUTPUT. Sinon, tu peux récupérer le résultat de ta requête dans une table temporaire, ou variable de type TABLE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Create Procedure Maprocedure @param OUTPUT VARCHAR(200) AS ... -- sinon Exec Maprocedure2 INTO #tmp
Effectivement je n'ai pas précisé, c'est une valeur que je souhaite récupérer.
En fait j'ai une procédure qui me retourne une valeur, et je souhaite récupérer cette valeur dans une variable d'une autre procédure.
Voici ce que le genre de code que je souhaiterai avoir :
Est-il possible de faire un INTO dans une variable ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 /*Sachant que maProcedure 1 retourne un entier*/ CREATE Procedure maProcedure2 @param as integer DECLARE maVariable as integer .... IF @param > 1 BEGIN @maVariable = EXECUTE maProcedure1 @Param END
Ce code est correct.
La seule chose c'est que en principe la procédure stockée doit retourner ce qu'on appelle un Return Code, qui est sensé renseigner la procédure appelante sur le bon déroulement de celle-ci.
Cette valeur est généralement :
0- success
1- info
2- warning
3- error
4- fail
Dans dans ton cas, j'utiliserais plustot un paramètre OUTPUT ou une fonction.
INTO fonctionne uniquement avec les résultats de type table.
Si ta variable est de type table, alors c'est bon![]()
Merci pour toutes ces informations, la solution du paramètre OUTPUT me convient très bien.
Partager