Ответ 1
Нет, другого решения нет. Однако вы должны реорганизовать свою процедуру, чтобы сделать только то, что вам нужно. Если вам нужен вывод для других вызовов, попробуйте разделить процедуру на две части.
Предположим, что у меня есть некоторая хранимая процедура (и я не могу ее изменить), которая возвращает результирующий набор:
create procedure test_procedure
as
begin
select 1
end
Я знаю, что я могу вставить результирующий набор в таблицу, поэтому он будет скрыт от вызывающего кода:
declare @t table(i int)
insert into @t
exec test_procedure
Есть ли другие способы скрыть возвращаемый набор результатов из вызывающего кода?
Обновление
Похоже, я немного запутался. Я ищу только ответы T-SQL (а не .NET).
Нет, другого решения нет. Однако вы должны реорганизовать свою процедуру, чтобы сделать только то, что вам нужно. Если вам нужен вывод для других вызовов, попробуйте разделить процедуру на две части.
Используйте дополнительный выходной параметр.
или используйте нижеприведенный пример
Create procedure Check @c int
as
begin
if @c = 1
select 1
else
print 1
end
напишите любое условие, которое будет удовлетворять и которое вернет вам указанные значения. используйте этот параметр как необязательный, поэтому никаких других изменений в вашей процедуре не будет.
Скорее вы попытаетесь вернуть свои данные через выходной параметр и вернуть код состояния в качестве возвращаемого значения процедуры?
Вы не могли бы легко вернуть полный набор результатов через этот выходной параметр, но вы могли бы вернуть некоторые данные с разделителями в выбранном вами формате.