Les procédures stockées sont largement utilisées dans SQL Server pour leur efficacité et leur réutilisabilité. Une exigence courante est de passer le résultat d’une procédure stockée en tant que paramètre à une autre procédure stockée. Dans cet article de blog, nous explorerons comment y parvenir à l’aide d’un exemple simple.
Commençons par créer deux procédures stockées. La première procédure stockée, appelée SquareSP, calcule le carré d’un paramètre donné. Voici le code:
CREATE PROCEDURE SquareSP @MyFirstParam INT AS DECLARE @MyFirstParamSquare INT SELECT @MyFirstParamSquare = @MyFirstParam*@MyFirstParam RETURN (@MyFirstParamSquare) GO
La deuxième procédure stockée, appelée FindArea, calcule la surface d’un cercle en utilisant le paramètre au carré passé par la première procédure stockée. Voici le code:
CREATE PROCEDURE FindArea @SquaredParam INT AS DECLARE @AreaofCircle FLOAT SELECT @AreaofCircle = @SquaredParam * PI() RETURN (@AreaofCircle) GO
Maintenant, voyons comment nous pouvons passer le résultat de la première procédure stockée à la deuxième procédure stockée en tant que paramètre. Nous pouvons y parvenir en suivant ces étapes:
- Déclarez des variables pour contenir le résultat et la surface finale:
- Exécutez la première procédure stockée et affectez le résultat à la variable:
- Exécutez la deuxième procédure stockée et passez la variable en tant que paramètre:
- Enfin, récupérez la surface finale:
DECLARE @ParamtoPass INT, @CircleArea FLOAT
EXEC @ParamtoPass = SquareSP 5
EXEC @CircleArea = FindArea @ParamtoPass
SELECT @CircleArea FinalArea
En suivant ces étapes, nous pouvons facilement passer le résultat d’une procédure stockée à une autre procédure stockée.
Après avoir exécuté le code, vous pouvez nettoyer en supprimant les procédures stockées:
DROP PROCEDURE SquareSP DROP PROCEDURE FindArea GO
J’espère que vous avez trouvé cet article de blog utile pour comprendre comment passer le résultat d’une procédure stockée en tant que paramètre à une autre procédure stockée dans SQL Server. Si vous avez des questions ou des réflexions, veuillez laisser un commentaire ci-dessous.