Can I have an optional OUTPUT parameter in a stored procedure?

后端 未结 5 905
花落未央
花落未央 2020-12-10 10:07

I have a stored procedure that has a bunch of input and output parameters because it is Inserting values to multiple tables. In some cases the stored proc only inserts to a

5条回答
  •  时光取名叫无心
    2020-12-10 10:50

    Both input and output parameters can be assigned defaults. In this example:

    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
    

    the first paramter is required, and the second and third are optional--if not set by the calling routine, they will be assigned the default values. Try messing around with it and the following test-call routine in SSMS using different values and settings to see how it all works together.

    DECLARE @Output int
    
    SET @Output = 3
    
    EXECUTE MyTest
      @Data1 = 1
     ,@Data2 = 2
     ,@Data3 = @Output output
    
    PRINT '---------'
    PRINT @Output
    

提交回复
热议问题