Подтвердить что ты не робот

Избегайте возврата набора результатов из хранимой процедуры

Предположим, что у меня есть некоторая хранимая процедура (и я не могу ее изменить), которая возвращает результирующий набор:

create procedure test_procedure
as
begin

    select 1

end

Я знаю, что я могу вставить результирующий набор в таблицу, поэтому он будет скрыт от вызывающего кода:

declare @t table(i int)

insert into @t
exec test_procedure

Есть ли другие способы скрыть возвращаемый набор результатов из вызывающего кода?

Обновление

Похоже, я немного запутался. Я ищу только ответы T-SQL (а не .NET).

4b9b3361

Ответ 1

Нет, другого решения нет. Однако вы должны реорганизовать свою процедуру, чтобы сделать только то, что вам нужно. Если вам нужен вывод для других вызовов, попробуйте разделить процедуру на две части.

Ответ 2

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

или используйте нижеприведенный пример

Create procedure Check @c int
as
begin
if @c = 1
    select 1
else
    print 1 
end

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

Ответ 3

Скорее вы попытаетесь вернуть свои данные через выходной параметр и вернуть код состояния в качестве возвращаемого значения процедуры?

Вы не могли бы легко вернуть полный набор результатов через этот выходной параметр, но вы могли бы вернуть некоторые данные с разделителями в выбранном вами формате.