Utilisation des paramètres de sortie pour attribuer des résultats d'exécution à des variables SQL
En SQL, la commande exec est couramment utilisée pour exécuter des procédures et des fonctions stockées. Bien que vous ne puissiez pas attribuer directement le résultat d'un appel exec à une variable en utilisant une expression comme celle que vous avez suggérée ("exec @PreviousBusinessDay = dbo.up_GetBusinessDay @Date, -1"), il existe des méthodes alternatives pour obtenir cette fonctionnalité.
Une approche privilégiée consiste à utiliser des paramètres de sortie. Les paramètres de sortie vous permettent de transmettre une variable en entrée, mais également de la mettre à jour avec une valeur renvoyée par la procédure stockée ou la fonction. Voici comment procéder :
Créer une procédure stockée avec un paramètre de sortie :
CREATE PROCEDURE YourStoredProcedure( @Param1 int, @Param2 varchar(5), @Param3 datetime OUTPUT ) AS IF ISNULL(@Param1, 0) > 5 BEGIN SET @Param3 = GETDATE() END ELSE BEGIN SET @Param3 = '1/1/2010' END RETURN 0 GO
Dans cet exemple, le paramètre @Param3 est déclaré comme sortie paramètre. Il sera mis à jour avec la valeur renvoyée par la procédure stockée.
Appel de la procédure stockée à l'aide d'un paramètre de sortie :
DECLARE @OutputParameter datetime ,@ReturnValue int EXEC @ReturnValue = YourStoredProcedure 1, NULL, @OutputParameter OUTPUT PRINT @ReturnValue PRINT CONVERT(char(23), @OutputParameter, 121)
Dans cet exemple, le @OutputParameter La variable est déclarée et transmise comme paramètre de sortie à la procédure stockée. Après l'appel exec, la variable @OutputParameter contiendra le résultat renvoyé par la procédure stockée, qui est ensuite imprimé sur la console.
Sortie :
0 2010-01-01 00:00:00.000
L'utilisation des paramètres de sortie fournit un moyen robuste et efficace de transmettre des valeurs entre les procédures stockées et les applications clientes dans SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!