Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Жалко что Storeprocedure не Function  [new]
арс
Guest
Уверен что реализуемо но не знаю синтаксиса.

Вопрос:
как из одной хр. проц-ры вызвать другую и вернуть значение , которое возвращает вторая?
Пример.

CREATE PROCEDURE proc1
AS
exec proc2 'a'
и вот b хотелось бы на этом месте получить


CREATE PROCEDURE proc2
@a varchar(1)
AS

if @a='a'
select 'b'

Заранее всем спасибо
6 фев 03, 15:57    [123535]     Ответить | Цитировать Сообщить модератору
 Re: Жалко что Storeprocedure не Function  [new]
GK
Guest
CREATE PROCEDURE proc2 

@a varchar(1), @rr varchar(1) output
AS
if @a='a' set @rr = 'b'
else set @rr = 'c'
go

CREATE PROCEDURE proc1
AS
declare @r varchar(1)
exec proc2 'a', @r output
select @r
go

exec proc1

drop procedure proc2
drop procedure proc1
6 фев 03, 16:06    [123551]     Ответить | Цитировать Сообщить модератору
 Re: Жалко что Storeprocedure не Function  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
очень просто. В теле процедуры:

declare @x int, @y int

exec MyProc1 'a', @x output -- В ее шапке нужно тоже описать @x как output

exec MyProc2 @x, @y output
6 фев 03, 16:09    [123554]     Ответить | Цитировать Сообщить модератору
 Re: Жалко что Storeprocedure не Function  [new]
AVB
Member

Откуда: Москва
Сообщений: 100
Или, можно проще:

CREATE PROCEDURE proc2
@a varchar(1) OUTPUT
AS
if @a='a'
select @a='b'



exec proc2 @a='a'
select @a


..и вот тебе 'b'
6 фев 03, 16:09    [123556]     Ответить | Цитировать Сообщить модератору
 Re: Жалко что Storeprocedure не Function  [new]
AVB
Member

Откуда: Москва
Сообщений: 100
...т.е.:


CREATE PROCEDURE proc2
@a varchar(1) OUTPUT
AS
if @a='a'
select @a='b'


set @a='a'

exec proc2 @a=@a output
select @a


(пропустил...)
6 фев 03, 16:16    [123563]     Ответить | Цитировать Сообщить модератору
 Re: Жалко что Storeprocedure не Function  [new]
арс
Guest
Всем огромное спасибо
6 фев 03, 16:17    [123566]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить