Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как сохранить результат работы процедуры в конструкцию with  [new]
kolyady
Member

Откуда:
Сообщений: 137
например есть процедура возвращающая колонки
ид, нейм, организация
как мне написать чтото ввиде

WITH fg AS
(
exec my_procedure @param1, @param2
)


процедура уже содержит внутри себя insert into , поэтому во времянку выгрузить не вариан
(ошибка:
an insert exec statement cannot be nested.)
24 июл 18, 12:13    [21597407]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат работы процедуры в конструкцию with  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
create table #t ...

exec my_procedure @param1, @param2  -- В процедуре вставить результат в #t, она там будет видна

select * from #t


Сообщение было отредактировано: 24 июл 18, 12:16
24 июл 18, 12:16    [21597427]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат работы процедуры в конструкцию with  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7758
kolyady,

подумайте об использовании output параметров. Вообще, возвращать датасеты из процедур - не слишком хорошая практика, хотя многие используют такую возможность.
24 июл 18, 14:00    [21598028]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат работы процедуры в конструкцию with  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Владислав Колосов
kolyady,

подумайте об использовании output параметров. Вообще, возвращать датасеты из процедур - не слишком хорошая практика, хотя многие используют такую возможность.

да, особенно, особенно отчёты
24 июл 18, 14:08    [21598060]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат работы процедуры в конструкцию with  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5954
Владислав Колосов
Вообще, возвращать датасеты из процедур - не слишком хорошая практика

А в чем заключается эта не слишком хорошесть, если не секрет? Тот же майкрософт такую возможность использует весьма часто, причем возращая из ХП по несколько датасетов (sp_helplogins и проч.).
24 июл 18, 14:19    [21598112]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат работы процедуры в конструкцию with  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
kolyady,

Можно опенроусетом баловаться, если не закрыто
  ;with ds as ( 
  SELECT * FROM OPENROWSET('SQLNCLI', 'Server=Myserver;Trusted_Connection=yes;',
  'EXEC Baza.dbo.procedura @business_date = ''20180329'',  @industry_taxonomy = NULL, @model = ''model'',@converted_pd = NULL
  WITH RESULT SETS ((  
  [UP Issuer ID] INT,	
  [UP Issuer Name]	VARCHAR(255),
  [Issuer Type]	INT,
  [Issuer Type Name] VARCHAR(255),
  [Industry Taxonomy] VARCHAR(255),
  [Industry Code] INT,	
  [Industry Code by Taxonomy]	VARCHAR(255),
  [Industry Name]	VARCHAR(255),
  [Region Code]	INT,
  [Region Name]	VARCHAR(255),
  [PD] FLOAT,
  [PD Source] VARCHAR(255)))
  ') a)
  select * from ds
24 июл 18, 16:07    [21598681]     Ответить | Цитировать Сообщить модератору
 Re: Как сохранить результат работы процедуры в конструкцию with  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7758
Сон Веры Павловны,

не хочу холивар поднимать. Но архитектура, основанная на функциональном разделении, имеет меньшую связность, как минимум.
24 июл 18, 16:15    [21598730]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить