Имам съхранен процес, който приема няколко параметъра. Един от тях е DateTime, който има стойност по подразбиране NULL.
За съжаление колоната, в която това ще бъде записано, е колона DateTime с възможност за нула. Това е проблем, тъй като понякога параметърът се игнорира, когато се извика съхранената процедура, но в крайна сметка презаписва валидна дата и час с null в целевата таблица.
Има ли някаква T-SQL функция или друг начин, който мога да използвам, за да определя дали повикващият действително е предал изрично NULL или просто е игнорирал този параметър и го е оставил да зададе стойността по подразбиране?
Единственото нещо, за което мога да се сетя за това;
- Също така има флаг, който показва, че потребителят иска да запази информацията DateTime
- Създаване на две версии на съхранената процедура; един с параметъра DateTime и без стойност по подразбиране и такъв, който напълно пропуска параметъра DateTime.
Нито една от двете не изглежда като фантастични идеи, така че всякакви идеи са високо оценени.