SQL Table 值参数 - 默认值

SQL Table Valued Parameter - Default Value

我正在将 table 值参数传递给存储过程以在 where 子句中使用,但我想先检查该参数是否已传入。检查此类参数的最佳方法是什么?例如,我希望 select 符合以下行:

SELECT * 
FROM tableName
WHERE
@TVP IS NULL OR RecordID IN (SELECT * FROM @TVP)

如果未传递 table 值类型的参数,它将只是一个空的 table。所以你可以使用:

SELECT * 
FROM tableName
WHERE not exists(select * from @TVP)
    or RecordID IN (SELECT * FROM @TVP)