pseudo code:
Code Snippet
select * from (exec firstProcedure 'argument') T where T.ID not in (exec secondProcedure 'arg') S;
What's the proper way to do this?
It is not possible, Convert your Sp as inline table or table valued function (UDF).
Sample,
Code Snippet
Create Function firstProcedure (@.arg int)
returns table
return
(
Select id from Sysobjects
)
GO
Create Function secondProcedure (@.arg int)
returns table
return
(
Select id+10 id from Sysobjects
)
GO
Select * from firstProcedure(1) Where id not in (Select id from secondProcedure(2))
|||Another alternative is to create temp tables and use INSERT INTO ... EXEC proc syntax to load the data into two different temp tables and then to join the temp tables. My first choice is normally to do as ManiD suggested and create either a function or a view; however, there are some procedures that simply cannot be converted. If this is the case, the temp table option might work best.|||
You can also use functions OPENQUERY (if you added a linked server) or OPENROWSET.
Example:
SELECT TOP 10 *
FROM OPENROWSET('SQLOLEDB', '(local)';'my_user';'my_pwd', 'EXEC Northwind..[Ten Most Expensive Products]') as t
go
AMB
sql
No comments:
Post a Comment