Stored procedures
От: Willi  
Дата: 29.08.01 07:23
Оценка:
Всем привет!

Вот опять жизнь заставляет обратиться к колективному разуму :)

MS SQL Server 7.0
Есть хранимая процеДура, ну например

create procedure Proc1
as
select f_id, f_text from table1

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

create procedure Proc2
as
select Proc1.f_text from Proc1 inner join table2 on Proc1.f_id = table2.f_id

Понятное дело, приведенная выше Proc2 написана не правильно.
Вопрос: Как написать ее правильно?
\/\/i||i
Re: Stored procedures
От: Roman Pankov  
Дата: 29.08.01 15:28
Оценка:
Здравствуйте Willi, вы писали:

W>Есть хранимая процеДура, ну например


W>create procedure Proc1

W>as
W>select f_id, f_text from table1

W>Хочется воспользоваться набором данных, возвращаемым

W>процедурой Proc1 в другой процедуре Proc2.
W>Ну например сделать такую выборку

W>create procedure Proc2

W>as
W>select Proc1.f_text from Proc1 inner join table2 on Proc1.f_id = table2.f_id

W>Вопрос: Как написать ее правильно?


Можно так:

create procedure Proc2 as
create table #temptable (f_id /*нужного типа*/, f_text /*нужного типа*/)
insert into #temptable execute Proc1
-- дальше #temptable используется, как обычно...
select #temptable.f_text from #temptable inner join table2 on #temptable.f_id = table2.f_id
drop table #temptable

Структура #temptable должна совпадать с тем набором записей, который возвращает Proc1.


P.
Re[2]: Stored procedures
От: Willi  
Дата: 30.08.01 08:36
Оценка:
Здравствуйте Roman Pankov, вы писали:

RP> Можно так:


RP>create procedure Proc2 as

RP> create table #temptable (f_id /*нужного типа*/, f_text /*нужного типа*/)
RP> insert into #temptable execute Proc1
RP> -- дальше #temptable используется, как обычно...
RP> select #temptable.f_text from #temptable inner join table2 on #temptable.f_id = table2.f_id
RP> drop table #temptable

RP> Структура #temptable должна совпадать с тем набором записей, который возвращает Proc1.


Спасибо!!!
\/\/i||i
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.