результаты выполнения хранимых процедур без OUTPUT
От: Цыба Украина  
Дата: 01.08.09 00:59
Оценка:
здравствуйте

тема давным-давно уже баян, но как-то гугль подвёл (
помогите, пожалуйста, разобраться с возвратом значений из хранимой процедуры с присвоением таких значений 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?

спасибо
sql stored procedure exec хранимая процедура
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.