sql >> Base de Datos >  >> RDS >> Sqlserver

¿Puedo tener un parámetro de SALIDA opcional en un procedimiento almacenado?

Se pueden asignar valores predeterminados tanto a los parámetros de entrada como a los de salida. En este ejemplo:

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

el primer parámetro es obligatorio, y el segundo y el tercero son opcionales; si la rutina de llamada no los establece, se les asignarán los valores predeterminados. Intente jugar con él y la siguiente rutina de llamada de prueba en SSMS usando diferentes valores y configuraciones para ver cómo funciona todo junto.

DECLARE @Output int

SET @Output = 3

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

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