sql server除存储过程结果外

时间:2014-03-25 11:22:35

标签: sql-server

我想这样做,但存储过程结果:

select * from table where column=whatever
except
select * from table2 where column=whatever

所以

exec sp1 args
except
exec sp2 args

我的sps没有返回值,只需要参数并返回select语句的结果

1 个答案:

答案 0 :(得分:5)

放手一搏。

CREATE PROCEDURE usp_sp1_Except_sp2
@sp1 args     --<-- All the params sp1 Expects
@sp2 args     --<-- All the params sp2 Expects
AS
BEGIN
  SET NOCOUNT ON;

IF OBJECT_ID('tempdb..#SP1_Results') IS NOT NULL
DROP TABLE #SP1_Results

IF OBJECT_ID('tempdb..#SP2_Results') IS NOT NULL
DROP TABLE #SP2_Results


CREATE TABLE #SP1_Results
(
  -- Define table structure here
)

CREATE TABLE #SP2_Results
(
  -- Define table structure here
)


INSERT INTO #SP1_Results
EXECUTE dbo.sp1 @sp1

INSERT INTO #SP2_Results
EXECUTE dbo.sp2 @sp2

SELECT * FROM #SP1_Results
EXCEPT 
SELECT * FROM #SP2_Results

  SET NOCOUNT OFF;

END