1

私は3つのパラメータを持つSQL関数を持っています。 3番目のパラメータのデフォルト値はNULLです。しかし、私は書くことができません。SQL関数とデフォルト値

dbo.myFunction(Param1, Param2) 

私はエラーを取得する:

An insufficient number of arguments were supplied for the procedure or function dbo.myFunction. 

は、したがって、私は書くために持っている:

dbo.myFunction(Param1, Param2, NULL) 
dbo.myFunction(Param1, Param2, default) 

は、私はちょうどdbo.myFunction(Param1, Param2)を書くことができる方法はあります?私は、これは多くのクリーナーだと思う(と私は、私は新しいのparamを追加しました既存の機能を変更することがなくなります!)&は必ず渡さなければならないオプションパラメータとは対照的に、彼らはデフォルトパラメータは

答えて

3

値がdefaultのコールで

あなたがしたい場合は、既存のdbo.myFunction(Param1, Param2)コールdbo.myFunctionEx(Param1, Param2, default)

+0

はとにかくオプションのパラメータを持つのがあることを確認してくださいだろうか?新しいパラメーターが既存のUDFに追加された場合、その関数への既存の呼び出しの標準プロトコルは何ですか?それらをすべて通過して「デフォルト」を追加しますか? – Curt

+1

引数が少なすぎたり多すぎる関数を呼び出すとエラーが発生するので、既定の呼び出しを変更したり、別の名前の改訂されたprocを作成したりする必要があります –

+0

ありがとうございましたAlex、ありがとうこの? theresのような私には、なぜ入力されていない場合、デフォルトは単に '仮定'にすることができない理由はないようです。 – Curt

関連する問題