Ich möchte die Ergebnisse zweier unterschiedlicher Speicherprozeduren zusammenführen, die dieselbe Struktur zurückgeben auf folgende Weise:
EXEC StoreProcedure1 p1
UNION
EXEC StoreProcedure2 p2
Mir ist klar, dass dies nicht möglich ist. Kann jemand eine elegante Alternative vorschlagen?
Ich glaube, ich sollte Temp Table verwenden?
Vielen Dank
Antworten:
3 für die Antwort № 1Sie können die gespeicherten Prozeduren in benutzerdefinierte Funktionen konvertieren, die stattdessen Tabellen zurückgeben, und Folgendes tun:
SELECT * FROM dbo.MyFunction1(p1)
UNION
SELECT * FROM dbo.MyFunction2(p2)
2 für die Antwort № 2
In SQL Server können Sie Folgendes tun:
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
Ich würde jedoch vorziehen, zu bestimmen, welche Abfragen beide gespeicherten Prozeduren ausgeführt werden, und dann eine neue Abfrage schreiben, die dieselben Abfragen ausführt und sie zusammenführt.