SQL Server 2005 объединяет результаты двух разных SP, как - PullRequest
1 голос
/ 17 июля 2009

Я хочу объединить результаты двух разных процедур магазина, которые возвращают одну и ту же структуру следующим образом:

   EXEC StoreProcedure1 p1
   UNION
   EXEC StoreProcedure2 p2

Я понимаю, что это невозможно, может кто-нибудь предложить элегантную альтернативу?

Мне кажется, я должен использовать временную таблицу?

Спасибо

Ответы [ 2 ]

3 голосов
/ 17 июля 2009

Вы можете преобразовать хранимые процедуры в пользовательские функции, которые вместо этого возвращают таблицы, и выполните:

SELECT * FROM dbo.MyFunction1(p1) 
UNION
SELECT * FROM dbo.MyFunction2(p2)
2 голосов
/ 17 июля 2009

В SQL Server вы можете сделать следующее:

create table #temp (
  col1 type,
  col1 type,
  ...
)

insert into #temp
exec sproc1
go
insert into #temp
exec sproc2
go

select * from #temp
go

drop table #temp

Однако я бы предпочел определить, какие запросы выполняются обеими хранимыми процедурами, а затем написать запрос с нуля, выполняя те же самые запросы и объединяя их вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...