1つの入力引数を取り、オプションの出力パラメーターを介して関連する属性を返すことができるストアドプロシージャを作成しています。これは次のように定義されます。
CREATE PROCEDURE dbo.sp_get_info
@Identifier nvarchar(50),
@Info1 uniqueidentifier = NULL OUTPUT,
@Info2 nvarchar(10) = NULL OUTPUT,
@Info3 int = NULL OUTPUT
プロシージャを次のように呼び出したいと思います。
DECLARE @uid uniqueidentifier
...
EXEC sp_get_info @Idenfier = 'a123',
@Info1 = @uid
各出力値を取得すると、異なるアクティビティが発生します。@Info1
このようにして、出力値のみを他の場所から取得する必要があるという事実を検出したいと思います。このように、プロシージャは、他の出力(現在は不要な)引数を取得するコストのかかるコードを実行する必要はありません。
まず、のようなテストを考えていましIF @Info1 IS NOT NULL do_something
た。ただし、OUTPUTも言うように、引数は入力値(Microsoft SQL)も@uid
持つことができ、それ自体が値を持つことができますNULL
。このように、上記のテストは機能しません。
状況を解決するために使用される技術はありますか?
ありがとう、ペトル