Набор данных из хранимой процедуры

Allvin
Дата: 17.12.2002 14:35:59
Как можно работать с сабжем, напремер объединить результаты выполнения нескольких процедур?
KirillovA
Дата: 17.12.2002 15:07:38
Молча
AAron
Дата: 17.12.2002 15:25:29
слишком общая задача...
процедуры можно наставить общаться и через доп.таблицы, и через OUTPUT-параметры, да мало ли способов
Julius
Дата: 17.12.2002 15:41:52
Если имеется в виду запрос на объединение по наборам записей из нескольких процедур, то можно через временную таблицу:

SELECT INTO #table
EXEC ..

INSERT INTO #table
EXEC ..
Allvin
Дата: 17.12.2002 17:01:32
Попробую уточнить ... Нужно объединить набор данных полученный из хранимой процедуры выполненой с разными параметрами примерно так...

Имя Данные
Саша 3
Петя 3
Ваня 2

Имя Данные
Саша 4
Петя 2
Игорь 2

имя Данные1 Данные2
Саша 3 4
Петя 3 2
Ваня 2 null
Игорь null 2

Плюс ко всему неизвестно количество вызовов функции....
ao1973
Дата: 17.12.2002 17:16:09
Вот тебе ответы
разберись сам но помоему первый самый умный
__________________________________________________________

Итак, одна хранимая процедура возвращает результат выборки и надо этот результат использовать в другой хранимой процедуре.

CREATE proc p1
@c cursor varying output
as
declare tc cursor for select * from DAO_ActionTypes
set @c = tc
DEALLOCATE tc
open @c
(конец первой процедуры, возвращающей значение)

дальше :
declare @c1 cursor,
@i1 int,
@i2 int,
@s1 varchar(255)

exec p1 @c = @c1 output

fetch next from @c1 into @i1, @i2, @s1
While @@FETCH_STATUS = 0
begin
print 'ХЕ-ХЕ: ' + @s1
fetch next from @c1 into @i1, @i2, @s1
end

Т.е. смысл в том, чтобы из первой процы возвращать курсов в качестве параметра.

____________________________________________________________________



ну а если просто из SQL, то наверное только через временные таблицы
Дата: вчера, 03:40

Re: процедуры как таблицы
AVL
Member

Откуда: Пермь
Сообщений: 154
надо вставить данные, получнные из ХП во временную таблицу. Дальше работать уже с этим набором данных
Дата: вчера, 06:20

Re: процедуры как таблицы
snake
Member

Откуда: SQL.RU
Сообщений: 274
Предлагаю всем такие топики называть так:
"Я с Интербейса перешел на SQL server ..."
Дата: вчера, 09:56

Re: процедуры как таблицы
ao1973
Member

Сообщений: 9
надо вставить данные, получнные из ХП во временную таблицу.
КАК?
если уж можно объясните

"Я с Интербейса перешел на SQL server"
Я тут видел и более глупые вопросы ,
так что не надо издеватся
Все когда-нибудь начинали!
Дата: вчера, 15:31

Re: процедуры как таблицы
snake
Member

Откуда: SQL.RU
Сообщений: 274

create table #tmp (

spid int,

dbid int,

ObjId int,

indId int,

type char(10),

resorce char(20),

mode char(10),

status char(10)

)

insert #tmp exec sp_lock

select * from #tmp

drop table #tmp

Дата: вчера, 15:38

Re: процедуры как таблицы
funikovyuri
Member

Откуда: Саратов
Сообщений: 122
insert into <table name> exec proc_name
Но помните, что такая конструкция не может быть вложенной, поэтому

Вместо процедур возвращающих recordset'ы используйту UDF ( User Defined Functions )
Дата: вчера, 15:39

Re: процедуры как таблицы
Белов Владимир
Member

Откуда: Москва
Сообщений: 341
insert into ... exec sp_lock

как раз такая фигня пройдет, т.к. если посмотреть текст sp_lock, то мы не увидим там не одного insert.
Короче избегай вложенных insert
Дата: вчера, 15:42

Re: процедуры как таблицы
ao1973
Member

Сообщений: 9
Спасибо!
Буду капать в этом направлении
Дата: вчера, 15:43

Re: процедуры как таблицы
snake
Member

Откуда: SQL.RU
Сообщений: 274
То ao1973
создайте на основе текста sp_lock UDF...
Дата: вчера, 15:48

Re: процедуры как таблицы
AAron
Member

Откуда: Moscow
Сообщений: 146
в дополнение, если процедура возращает несколько рекордсетов, тоже могут быть проблемы.
Дата: вчера, 15:48

Re: процедуры как таблицы
funikovyuri
Member

Откуда: Саратов
Сообщений: 122
2snake: шутка, наверное, такая ? :)
Дата: вчера, 15:50

Re: процедуры как таблицы
snake
Member

Откуда: SQL.RU
Сообщений: 274
вовсе нет, funikov yuri...
Дата: вчера, 15:51

Re: процедуры как таблицы
funikovyuri
Member

Откуда: Саратов
Сообщений: 122
2snake: а потом наверное и все остальные системные процедуры ?
Дата: вчера, 15:52

Re: процедуры как таблицы
snake
Member

Откуда: SQL.RU
Сообщений: 274
если требует задача - да!
Дата: вчера, 15:53

Re: процедуры как таблицы
funikovyuri
Member

Откуда: Саратов
Сообщений: 122
2snake: есть недостатки
- непереносимость, даже в пределах одной версии - от ServicePack к ServicePack
- функции имеют больше ограничений - т.е. не всякая процедура может стать функцией
Дата: вчера, 15:56

Re: процедуры как таблицы
snake
Member

Откуда: SQL.RU
Сообщений: 274
согласен...
Дата: вчера, 16:01

Re: процедуры как таблицы
TurPOKPbIC
Member

Сообщений: 1
Еще копни в сторону OPENROWSET.
Дата: вчера, 17:49

Re: процедуры как таблицы
ao1973
Member

Сообщений: 9
Все немного в сторону свернули
Суть не в системных процедурах,
предположим у меня есть процедура [прибыль],
которая делает что-то полезное ,положим считает товарооборот ,затем я пишу
процедуру [фин_баланс],которая испульзует
данные [прибыль]-и .
Суть в том как мне из [фин_баланс]-а вызывать рекордсет
[прибыль]-и.
Дата: вчера, 18:35

Re: процедуры как таблицы
Fedot
Member

Откуда: Kiev
Сообщений: 18
А может SELECT (...) FROM OPENQUERY(ServerName, 'BLA_BLA') поможет?