здравствуйте
тема давным-давно уже баян, но как-то гугль подвёл (
помогите, пожалуйста, разобраться с возвратом значений из хранимой процедуры с присвоением таких значений t-sql переменным в ms sql 2005
знаю, есть возможность использовать output-параметры, но они, на мой взгляд, выглядят довольно неуклюже
пока нашёл только следующий способ:
create procedure math
@a as int,
@b as int
as begin
select @a + @b as "plus", @a - @b as "minus";
end;
declare @result table(plus int, minus int);
insert into @result exec math 4, 6;
declare @_plus as int;
declare @_minus as int;
set @_plus = (select plus from @result); -- set - именно цель всего этого
set @_minus = (select minus from @result);
print @_plus;
print @_minus;
укажите, пожалуйста, что я делаю не так (я пока вижу только излишек кода + большее количество операций вместо простейшего set @output = value в самой процедуре), и есть ли альтернативные варианты возвращения одного и нескольких значений из хранимой процедуры так, чтобы присваивать их t-sql переменным без использования output?
и вдогонку: существуют ли способы не указывать структуру возвращаемого набора данных, т.е. как бы что-то типа declare @result as table?
спасибо