Вот что я хочу сделать:
С учетом таблицы
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
фактически говорит о том, что человек с идентификатором 1 должен быть босиком и носить пятую шляпу с
exec UpdateOutfit @id=1, @newHat=5
что инструктирует этого человека носить пятую шляпу, сохраняя его нынешние сапоги?
Другими словами, я хочу сказать (в рамках хранимой процедуры), «использовалось ли значение по умолчанию, потому что оно не было указано» из «Я явно вызвал эту процедуру, передав значение, совпадающее с значением по умолчанию» .
Я знаю, что есть несколько способов выполнить то, что я хочу сделать, например передать XML или битовую маску обновляемых полей, но на данный момент я просто хочу убедиться, возможен ли этот точный метод или нет.
Редактировать: передача зарезервированных значений не работает для полей с малым типом диапазона, таких как бит. Процедуры перегрузки также являются неприемлемым вариантом. Создание пользовательского типа, расширяющего парадигму NULL дополнительным значением «NotAValue», может быть ответом, но мне нужно больше рекомендаций о том, как его реализовать.