これが取引です。私たちのデータベースでは、セキュリティとモジュール性のために、ほとんどの読み取り (つまり、select ステートメント) をテーブル値関数でラップしています。したがって、1 つ以上のオプションのパラメーターを定義する TVF があります。
デフォルトのパラメーターを持つ TVF を使用すると、default
次のように TVF を呼び出すときにキーワードの使用が義務付けられると思います。
select * from fn_SampleTVF(123, DEFAULT, DEFAULT)
それは問題ありません。すべてがクエリ アナライザーで機能しますが、実際に 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);
default
では、 TVF に移行する方法を知っている人はいますか?