1

所以我有这个用户定义的表格类型参数,它用在我的标量函数中,可能是空的。 我读过有关传递空单表值参数的存储过程这个话题: Binding empty list or null value to table valued parameter on a stored procedure (.net)
基本上,作为repliers的人说:将空列表传递给用户定义的标量函数的表格类型参数

"The trick is: don’t pass in the parameter at all. The default value for a table-valued parameter is an empty table"

然而,当我尝试这个标量函数,我得到一个错误:

An insufficient number of arguments were supplied for the procedure or function

那么如何将空值传递给标量函数上的表值参数?

回答

1

函数的参数不是可选的,因此您需要将兼容的TVP传递给该函数。我不确定我是否理解需要TVP类型但不需要的标量值函数 - 这个函数做了什么?它如何在没有TVP的情况下执行?你确定这不是一个TVF吗?

反正这里是你可以传递一个空TVP的标量函数:

DECLARE @x dbo.TVP_type_name; 
SELECT dbo.function_name(@x); 
+0

这个标值的函数应该返回共搜索结果数。它基本上和我的存储过程有相同的参数,除了我的SP返回查询结果并且有两个额外的分页参数 - “页码”和“每页行数”。感谢您的帮助,我现在看到我需要明确宣布这些TVP。 – 2012-07-18 13:00:29

相关问题