Все переменные в Sql обнуляются. В sql нет способа сделать ненулевую переменную.
--yup, it's nullable. even starts initialized to null.
DECLARE @MyVar int
Если вы измените тип параметра в конструкторе, это должно подойти.
Код отображения может иметь необнуляемое значение и передавать его в базу данных, а база данных будет называть его обнуляемым, и в этом нет проблем. Это происходит с каждым необнуляемым в ваших запросах уже ... например, целыми необнуляемыми идентификаторами в предложениях Where.
Если вы не можете установить желаемый тип в конструкторе ... вот что нужно сделать. Возьмите сгенерированный код для метода и скопируйте его из файла designer.cs в новое частичное определение класса. Установите тип вручную в атрибутах метода. Удалите сохраненный процесс из конструктора (на данный момент сохраненный процесс является ручным дополнением). Нам пришлось использовать этот стиль исправления, чтобы параметры OUTPUT работали.