kantagrawal Ответов: 1

Если мы присвоим некоторое значение локальной переменной и вызовем эту процедуру с некоторым значением. А потом?


мы создаем хранимую процедуру и присваиваем некоторое значение локальной переменной.

создайте процедуру prcGetCity @cityid int = 4, @stateid int =5
как
выберите * из TblMasterCity, где cityid=@cityid и StateID=@stateid

затем вызовите процедуру:
выполнить prcGetCity 3,2

это дает правильный результат. но если мы называем процедуру без ценности.

выполнить prcGetCity

он возвращает 0 строк.

Итак, мой вопрос заключается в том, какова польза от присвоения значения локальной переменной. если он работает, как без присвоения значения.

Что я уже пробовал:

создайте процедуру prcGetCity @cityid int = 4, @stateid int =5
как
выберите * из TblMasterCity, где cityid=@cityid и StateID=@stateid


выполнить prcGetCity

MadMyche

Что произойдет, если вы запустите оператор SELECT непосредственно со значениями 4,5? 3,2?
Процедура выглядит нормально, но если данных там нет, то она ничего не вернет

Richard Deeming

NB: То, что вы там показали, - это присвоение значениям по умолчанию параметры У вас нет никаких локальных переменных. :)

1 Ответов

Рейтинг:
8

OriginalGriff

Он не возвращает строк, потому что ваша таблица не содержит строк, где CityId равен 4, а StateId-5. Если вы добавите такую строку в свою таблицу, она будет возвращена.

Если вы не предоставляете значения, определение SP говорит, что они должны быть по умолчанию - но это никоим образом не меняет данные!