【发布时间】:2015-08-19 18:41:44
【问题描述】:
我将表值参数传递给存储过程以在 where 子句中使用,但我想先检查参数是否已传入。检查这种类型的参数的最佳方法是什么?例如,我希望选择符合以下内容:
SELECT *
FROM tableName
WHERE
@TVP IS NULL OR RecordID IN (SELECT * FROM @TVP)
【问题讨论】:
-
你应该看看这篇关于这个话题的文章。 sqlinthewild.co.za/index.php/2009/09/15/…
-
TVP 是一个表,而不是一个变量。你不能说
WHERE dbo.tableName IS NULL,所以试试WHERE NOT EXISTS (SELECT 1 FROM @TVP)。此外,您应该命名列而不是说*。
标签: sql sql-server query-parameters