sha*_*oth 8 sql t-sql sql-server union stored-procedures
我有一个以下存储过程
CREATE PROCEDURE [dbo].[MyStored]
@state int
AS
SELECT blahblahblah WHERE StoredState=@state LotsOfJoinsFollow;
RETURN 0
Run Code Online (Sandbox Code Playgroud)
我想调用存储过程@state感0和1并请有两个通话联合返回的结果集UNION的语义,使我有一个从第一呼叫和第二呼叫已排了新的结果集.
像(假想的SQL):
(EXEC MyStored 0) UNION (EXEC MyStored 1);
Run Code Online (Sandbox Code Playgroud)
我如何实现这一目标?
bri*_*ian 14
这可能过分简化了问题,但如果您可以控制sp,只需使用in而不是=:
CREATE PROCEDURE [dbo].[MyStored]
AS
SELECT blahblahblah WHERE StoredState IN (0,1) LotsOfJoinsFollow;
RETURN 0
Run Code Online (Sandbox Code Playgroud)
如果这不是一个选项,只需将两个sproc调用的结果推送到临时表:
/*Create a table with the same columns that the sproc returns*/
CREATE TABLE #tempblahblah(blahblahblah NVARCHAR(50))
INSERT #tempblahblah ( blahblahblah )
EXEC MyStored 0
INSERT #tempblahblah ( blahblahblah )
EXEC MyStored 1
SELECT * FROM #tempblahblahRun Code Online (Sandbox Code Playgroud)
create table #table (
.....
)
insert into #table exec MyStored 0
insert into #table exec MyStored 1
select * from #table
drop table #table
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35988 次 |
| 最近记录: |