所以这是交易。在我们的数据库中,出于安全性和模块化的目的,我们将大部分读取(即选择语句)包装在表值函数中。所以我有一个定义一个或多个可选参数的 TVF。
我相信具有默认参数的 TVF 要求default
在调用 TVF 时使用关键字,如下所示:
select * from fn_SampleTVF(123, DEFAULT, DEFAULT)
没关系,一切都在查询分析器中运行,但是当实际从 ADO.NET 发出这个请求时,我不确定如何创建一个 sql 参数,该参数实际上将单词default
放入呈现的 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);
那么,有人知道如何传递default
给 TVF 吗?