これが私がやりたいことです:
与えられたテーブル
PeopleOutfit (id int primary key, boots int, hat int)
そして、ストアドプロシージャ
UpdateOutfit @id int, @newBoots int = null, @newHat = null
この手順を次のように呼び出したかどうかを確認する方法はありますか
exec UpdateOutfit @id=1, @newBoots=null, @newHat=5
ID が 1 の人は裸足で 5 番目の帽子をかぶらなければならないことを効果的に伝えます。
exec UpdateOutfit @id=1, @newHat=5
この人に、現在のブーツを維持したまま 5 番目の帽子を着用するように指示するものは何ですか?
つまり、「指定されていないためにデフォルト値が使用された」かどうかを(ストアドプロシージャ内で)「たまたまデフォルト値と同じ値を渡してこのプロシージャを明示的に呼び出した」ことを伝えたいのです。
XML や更新されるフィールドのビットマスクを渡すなど、やりたいことを達成する方法がいくつかあることは知っていますが、今のところ、この正確な手法が可能かどうかを確認したいだけです。
編集:ビットなどの小さな範囲型のフィールドでは、予約値を渡すことはできません。プロシージャのオーバーロードも、受け入れられないオプションです。追加の「NotAValue」値で NULL パラダイムを拡張するユーザー定義型を作成することは答えかもしれませんが、それを実装する方法についてさらにガイダンスが必要です。