Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Posso avere un parametro OUTPUT facoltativo in una procedura memorizzata?

Sia i parametri di ingresso che quelli di uscita possono essere assegnati ai valori predefiniti. In questo esempio:

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

il primo parametro è obbligatorio e il secondo e il terzo sono opzionali:se non impostati dalla routine chiamante, verranno assegnati i valori predefiniti. Prova a giocare con esso e la seguente routine di chiamata di prova in SSMS utilizzando valori e impostazioni diversi per vedere come funziona tutto insieme.

DECLARE @Output int

SET @Output = 3

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

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