如何在ADO.NET中为表值函数调用传递default关键字

Mas*_*son 5 ado.net user-defined-functions sqlparameter

所以这是交易.在我们的数据库中,为了安全性和模块性,我们将大多数读取(即select语句)包含在表值函数中.所以我有一个定义一个或多个可选参数的TVF.

我认为拥有默认参数的TVF要求default在调用TVF时使用关键字,如下所示:

select * from fn_SampleTVF(123, DEFAULT, DEFAULT)
Run Code Online (Sandbox Code Playgroud)

这很好,一切都在查询分析器中工作,但是当实际从ADO.NET发出这个请求时,我不知道如何创建一个实际将单词default放入渲染的sql 的sql参数.

我现在有类似的东西:

String qry = "select * from fn_SampleTVF(@requiredParam, @optionalParam)";

DbCommand command = this.CreateStoreCommand(qry, CommandType.Text);

SqlParameter someRequiredParam = new SqlParameter("@requiredParam", SqlDbType.Int);
someRequiredParam.Value = 123;
command.Parameters.Add(someRequiredParam);

SqlParameter optionalParam = new SqlParameter("@optionalParam", SqlDbType.Int);
optionalParam.Value = >>>> WTF? <<<<
command.Parameters.Add(optionalParam);
Run Code Online (Sandbox Code Playgroud)

所以,任何人都有任何想法如何传递default给TVF?

Kev*_*han 0

您可以传递 Null 作为参数值。

本文展示了示例。