Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Puis-je avoir un paramètre OUTPUT facultatif dans une procédure stockée ?

Les paramètres d'entrée et de sortie peuvent être assignés par défaut. Dans cet exemple :

CREATE PROCEDURE MyTest
  @Data1 int
 ,@Data2 int = 0
 ,@Data3 int = null output

AS

PRINT @Data1
PRINT @Data2
PRINT isnull(@Data3, -1)

SET @Data3 = @Data3 + 1

RETURN 0

le premier paramètre est obligatoire et les deuxième et troisième sont facultatifs - s'ils ne sont pas définis par la routine d'appel, les valeurs par défaut leur seront affectées. Essayez de jouer avec et avec la routine d'appel test suivante dans SSMS en utilisant différentes valeurs et paramètres pour voir comment tout cela fonctionne ensemble.

DECLARE @Output int

SET @Output = 3

EXECUTE MyTest
  @Data1 = 1
 ,@Data2 = 2
 ,@Data3 = @Output output

PRINT '---------'
PRINT @Output