2

所以我有这个用户定义的表类型参数,它在我的标量函数中使用并且可能为空。我已经阅读了有关将空列表传递给存储过程的表值参数的主题: Binding empty list or null value to table valued parameter on a stored procedure (.net)
基本上,正如其中一位回复者所说:

“诀窍是:根本不要传入参数。表值参数的默认值为空表”

但是,当我在标量函数上尝试此操作时,出现错误:

为过程或函数提供的参数数量不足

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

4

1 回答 1

2

函数的参数不是可选的,因此您需要将兼容的 TVP 传递给函数。我不确定我是否理解采用 TVP 类型但不需要的标量值函数的意义——这个函数有什么作用,没有 TVP 怎么办?你确定这不是TVF吗?

无论如何,这里是如何将一个空的 TVP 传递给一个标量函数:

DECLARE @x dbo.TVP_type_name;
SELECT dbo.function_name(@x);
于 2012-07-18T12:04:17.610 回答