powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возвращение наборОВ данных из хр.процедур
5 сообщений из 5, страница 1 из 1
Возвращение наборОВ данных из хр.процедур
    #32067943
Long
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хр.процедура должна возвратить несколько наборов данных. Пока один возвращается через
select * from #temp
в процедуре и вызовом её через
insert into result1 exec proc
А всё остальное через глобальные временные таблицы. Хотелось бы отказаться от них. Можно ли как-то иначе извернуться?
...
Рейтинг: 0 / 0
Возвращение наборОВ данных из хр.процедур
    #32067948
Long
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Иными словами, можно ли на T-SQL'е обработать результаты хр.процедуры, возвращающей несколько таблиц?
...
Рейтинг: 0 / 0
Возвращение наборОВ данных из хр.процедур
    #32067953
Осирис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну например расширяя тот пример, который только что предоставили мен в соседнем топике:

USE pubs
GO
/* Create a procedure with a cursor output parameter. */
CREATE PROCEDURE OpenCrsr2
@OutCrsr CURSOR VARYING OUTPUT,
@OutCrsr2 CURSOR VARYING OUTPUT
AS
SET @OutCrsr = CURSOR FOR
SELECT au_lname
FROM authors
WHERE au_lname LIKE 'S%'

OPEN @OutCrsr

SET @OutCrsr2 = CURSOR FOR
SELECT au_lname
FROM authors
WHERE au_lname LIKE 'S%'

OPEN @OutCrsr2
GO

/* Allocate a cursor variable. */
DECLARE @CrsrVar CURSOR
DECLARE @CrsrVar2 CURSOR

/* Execute the procedure created earlier to fill
the variable. */
EXEC OpenCrsr2 @OutCrsr = @CrsrVar OUTPUT, @OutCrsr2 = @CrsrVar2 OUTPUT

/* Use the variable to fetch the rows from the cursor. */
FETCH NEXT FROM @CrsrVar
WHILE (@@FETCH_STATUS <> -1)
BEGIN
FETCH NEXT FROM @CrsrVar
END

/* Use the variable to fetch the rows from the cursor. */
FETCH NEXT FROM @CrsrVar2
WHILE (@@FETCH_STATUS <> -1)
BEGIN
FETCH NEXT FROM @CrsrVar2
END

CLOSE @CrsrVar
CLOSE @CrsrVar2

DEALLOCATE @CrsrVar
DEALLOCATE @CrsrVar2
GO

Так пойдет ?
...
Рейтинг: 0 / 0
Возвращение наборОВ данных из хр.процедур
    #32067968
Long
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неа, непойдёт. В твоём примере делаются курсоры на существующие таблицы, а у меня таких таблиц нет - хр.процедура собирает и обрабатывает данные и должна их вернуть, а не ссылки на исходные данные.
...
Рейтинг: 0 / 0
Возвращение наборОВ данных из хр.процедур
    #32068034
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если на клиенте то это просто... пример из BOL
Set rs = Cmd.Execute
While Not rs Is Nothing
If (Not rs.EOF) Then
Debug.Print rs(0)
End If
Set rs = rs.NextRecordset
Wend
поищи по multiple recordset
если на сервере то :
либо объединяй результаты...
либо пиши в постоянные временные таблицы...
а еще лучше разбить на несколько процедур....
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возвращение наборОВ данных из хр.процедур
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]