Предположите, что у меня есть некоторая хранимая процедура (и я не могу изменить ее), который возвращает набор результатов:
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
напишите любое условие, которое будет удовлетворяться и возвращать указанные вами значения. Используйте этот параметр как необязательный, чтобы не вносить никаких изменений в вашу процедуру.