Table Value optional parameter

前端 未结 3 392
既然无缘
既然无缘 2020-12-16 10:46

Is it possible to create a procedure with a table value parameter as an optional parameter.

I tried the following code:

CREATE PROCEDURE SP
@Table te         


        
相关标签:
3条回答
  • 2020-12-16 11:05

    Not sure why the answer above states making default value = NULL is incorrect but this works for me.

    CREATE PROCEDURE SP
    (
        @Param1 VARCHAR(10),
        @Param2 VARCHAR(10)=NULL
    )
    
    SELECT......
    WHERE @Param1 = SOMETHING
    AND (@Param2 = SOMETHING OR @Param2 IS NULL)
    
    0 讨论(0)
  • 2020-12-16 11:14

    Table-Valued parameters always have an implicit value of an empty table. So you can actually call that procedure without any parameters and it would execute but the table would be empty.

    So it doesn't really make sense to label a table-value parameter with a default value. Remove the "=null", check the table contents, and you should be good to go.

    0 讨论(0)
  • 2020-12-16 11:22

    Basically, having default value "= null" makes no sense and is the reason of the error.

    By default, @Table testteype gets value of an empty table. Thus, you may remove = null:

    CREATE PROCEDURE SP
    @Table testteype  READONLY
    AS 
    ....
    

    Reference: for a sample on how to use this with C# ADO.NET i would recommend to use this post - Using SQL Server’s Table Valued Parameters

    0 讨论(0)
提交回复
热议问题