所以我有这个用户定义的表类型参数,它在我的标量函数中使用,可能是空的。
我已经阅读了关于将空列表传递给存储过程中的表值参数的主题:
Binding empty list or null value to table valued parameter on a stored procedure (.net)
基本上,正如其中一位回复者所说:
“诀窍是:根本不传递参数。默认值 表值参数的值是一个空表“
但是,当我在标量函数上尝试这个时,我收到一个错误:
为程序提供的参数数量不足或 功能
那么如何在标量函数上将空值传递给表值参数?
答案 0 :(得分:2)
函数的参数不是可选的,因此您需要将兼容的TVP传递给函数。我不确定我是否理解采用TVP类型但不需要的标量值函数的意义 - 这个函数做了什么以及如何在没有TVP的情况下做到这一点?你确定这不是一个TVF吗?
无论如何,这里是你如何将空的TVP传递给标量函数:
DECLARE @x dbo.TVP_type_name;
SELECT dbo.function_name(@x);