Рабочий процесс:
У меня есть две хранимые процедуры.Одна хранимая процедура вызывает другую.Когда я впервые открываю SQL Server Management Studio, дочерняя / вложенная хранимая процедура не имеет выходных параметров.Кроме того, моя родительская / вызывающая хранимая процедура не имеет ключевого слова «OUTPUT» в аргументе при вызове дочерней / вложенной хранимой процедуры.И, конечно, я не ожидаю, что какой-либо аргумент будет возвращен как вывод в моей родительской / вызывающей хранимой процедуре из дочерней / вложенной хранимой процедуры.
Затем я решил, что мне нужно возвращаемое значение идентификатора, который был вставленво время этой дочерней / вложенной хранимой процедуры, поэтому я решил поместить в параметр ключевое слово «OUTPUT», чтобы я мог получить это значение в родительской / вызывающей хранимой процедуре.
Поэтому я изменил свой дочерний / вложенный хранимыйпроцедура после добавления ключевого слова «OUTPUT» в конце параметра.И нажмите кнопку «Выполнить» в SQL Server Management Studio, чтобы сохранить хранимую процедуру.
Затем я добавил ключевое слово «OUTPUT» для аргумента моей родительской / вызывающей хранимой процедуры, совпадающего с параметромдочерняя / вложенная хранимая процедура.Затем я нажал кнопку «Выполнить» в SQL Server Management Studio, чтобы сохранить хранимую процедуру.
Проблема:
У меня есть красные подчеркивания под моим аргументом в родительском /Вызов хранимой процедуры.Всплывающая подсказка об ошибке гласит: «Формальный параметр @donorid не был объявлен как выходной параметр, но фактический параметр передан в запрошенном выводе».
Обходной путь:
Я могу легко перезапустить SQL Server Management Studio, и он очищает кеш, а красные подчеркивания исчезают, но я хотел бы знать, что командаочищает его без перезапуска.
PS: я буду публиковать свои хранимые процедуры в отдельных сообщениях, поэтому у вас есть пример для работы.