在SQL CTE中调用存储过程

时间:2011-06-13 15:27:33

标签: sql sql-server-2005 common-table-expression

您是否可以在SQL CTE语句中执行存储过程?我对sql cte查询有点新...

2 个答案:

答案 0 :(得分:29)

不,抱歉。仅选择法规

如果你需要使用存储过程输出(结果集),那么它就是临时表

CREATE TABLE #foo (bar int...)

INSERT #foo (bar, ...)
EXEC myStoredProc @param1...

-- more code using #foo

答案 1 :(得分:1)

您还可以使用表变量:

DECLARE @tbl TABLE(id int ,name varchar(500) ,...)      
    INSERT INTO @tbl        
    EXEC myprocedure @param ..

with cte as (
    SELECT * FROM @tbl  
)
select * from cte