MSSQL 2005 Server SQLCLRにストアドプロシージャがあります。 オプションの引数を定義することはできますか? そうなら、どうですか?SQLCLRのオプション引数の使用
答えて
最もシンプルではないにしても、最善の解決策は、 'shim'ストアドプロシージャを使用して、これらのデフォルト値を持つ内部ストアドプロシージャを呼び出すオプションパラメータのデフォルト値を使用することです。 C#3以前ではオプションのパラメータを使用していました。
あなたはヌルとしてそれを渡し、その後、このような何か行うことができます。
create proc sp_find_person
@fname varchar(30)
@lname varchar(60)
as
begin
select * from person a
where (a.fname = @fname or @fname is null)
and (a.lname = @lname or @lname is null);
end
go
人からすべての行を返しますNULLとして両方のパラメータを渡すを。
@fnameに値と@lname nullを渡すと、その@fnameを持つすべての人が返されます。
@lnameに値と@fname nullを渡すと、その@lnameを持つすべての人が返されます。
null以外の値を渡すと、指定されたfnameとlnameを持つすべての人が見つかります。
デフォルトにしたい値のNullを渡すだけで何か問題はありますか?
これはすべての状況で動作するとは限りません。
実際の値がNullであるかどうかを知りたい場合があります。そのため、デフォルトを使用しないでください。
この場合、追加の「デフォルト」パラメータを追加することになります。
[Microsoft.SqlServer.Server.SqlProcedure]
public static void MySproc(SqlInt32 pID, SqlBoolean UseDefault_pID)
{
pID = (UseDefault_pID == SqlBoolean.True && pID == SqlInt32.Null)
? SomeDefaultPIDValue : pID;
}
これは、あなたのCLRのSPROCを呼び出して、デフォルト値とオプションのパラメータに取るために、追加の「ラッパー」ストアドプロシージャを記述することで保存されます。
ヌルを渡したときにデフォルト-値を使用する:= 1
UseDefault_pIDヌルを渡したときに実際の価値を維持するために:はい、それは私が今のやっていることですUseDefault_pID = 0
私は間違っていないと思います。これが3.5年前のことを見て、私は元のケースを覚えていません。私はそれがいくつかのオプションのパラメータを持つ手続きだったと推測できるので、デフォルトのチェックコードは長くなるかもしれません。 –
- 1. 各位置引数のオプションの引数
- 2. コールバック引数の前のオプション引数
- 3. LaTeXオプションの引数
- 4. オプションのコマンドライン引数
- 5. subprocess.Popenオプションの引数
- 6. getopts(bash)を使用した複数のオプション引数
- 7. クラス関数のオプション引数
- 8. phpDocumentorのオプションの引数
- 9. shスクリプトのオプションの引数
- 10. ルビのオプションの引数/ param
- 11. PHPのオプション引数のテスト
- 12. 関数に渡されるすべての引数(対のみ$オプションの引数)のみのオプションの引数
- 13. mongodump 3.2.1位置引数次のオプションを使用して
- 14. Jinja2ブロックタグでオプションの引数を使用できますか?
- 15. オプションの引数は、Pythonで
- 16. Pythonデコレータのオプション引数
- 17. C++/CLIのオプション引数
- 18. オプションの引数cmakeマクロ
- 19. Spyder:オプション引数のシンタックスハイライト
- 20. Cコールバック - オプションの引数?
- 21. C#オプションの引数 - forループ
- 22. Spring SimpleJdbcCallデフォルト(オプション)の引数
- 23. Drupalフックメニューのオプション引数
- 24. 複数のオプションの引数のpython
- 25. C++オプション/デフォルト引数
- 26. Fortran関数のオプションの引数
- 27. C++のオプションの引数としてのC++のヌルポインタ引数
- 28. 複数の引数を持つオプション
- 29. PHPオプションの動的関数引数
- 30. デフォルトの引数とオプションの引数を持つ方法は?
が、私は同じことのために複数のストアプロシージャを持つことを避けようとしています。 –