powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов процедуры в процедуре.
8 сообщений из 8, страница 1 из 1
Вызов процедуры в процедуре.
    #32060591
АМС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить набор данных из хранимой процедуры?
Есть процедура proc1, которая возвращает набор данных из одной строки. Хотелось бы получить значение одного столбца примерно таким способом(который не работает) для использования в другой хранимой процедуре:

Код: plaintext
select @col=Поле1 from (exec proc1 Параметр)

Может кто знает, как это сделать?
...
Рейтинг: 0 / 0
Вызов процедуры в процедуре.
    #32060605
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь лучше использовать output параметры для всех возвращаемых полей.
Код: plaintext
1.
2.
3.
4.
create proc1
   @Parametr datatype0,
   @Field1 datatype1 output,
   @Field2 datatype2 output...
...
Рейтинг: 0 / 0
Вызов процедуры в процедуре.
    #32060610
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexes прав, но, если очень нужно, можно так.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE #t (
...  --полностью совпадает с возвр. строкой
 
)

INSERT #t EXECUTE proc1

SELECT @col = Поле1 FROM #t
...
Рейтинг: 0 / 0
Вызов процедуры в процедуре.
    #32060611
АМС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexes'у
Это-то понятно. Но proc1 уже задействована в других операциях с ADO и не хочется её менять или писать подобную, но с выходными параметрами. Самое смешное в том, что на клиенте через ADO я спокойно могу получить этот dataset, а внутри SQL-server'a трудности. Мне смутно кажется, что выход должен быть, но он какой-то кривой.
...
Рейтинг: 0 / 0
Вызов процедуры в процедуре.
    #32060613
fima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать конструкцию insert into table_name exec procedure_name занося либо во временную таблицу либо в переменную типа таблица, можно воспользоваться openrowset. Но лучше сделать как предложил Alexes, а для того что бы не трогать существующую процедуру, можно сделать её копию под другим именем и немного исправить.
...
Рейтинг: 0 / 0
Вызов процедуры в процедуре.
    #32060614
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно и потрогать, оставив select и добавив выходные параметры со значениями по умолчанию
Код: plaintext
1.
2.
3.
4.
create proc1
   @Parametr datatype0,
   @Field1 datatype1 = null output,
   @Field2 datatype2 = null output...
...
Рейтинг: 0 / 0
Вызов процедуры в процедуре.
    #32060626
АМС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fime
Спасибо!! Вариант с временной таблицей подходит. Я сам когда-то так делал, но потом забыл.
...
Рейтинг: 0 / 0
Вызов процедуры в процедуре.
    #32060660
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Fime
Ну вот, а я писал, старался, а вы даже не посмотрели на мой ответ. ;(
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов процедуры в процедуре.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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