我可以像表一样处理存储过程的结果吗?

时间:2011-01-07 21:15:06

标签: sql-server sql-server-2005

是否可以在sql server 2005中执行类似的操作?

WITH tmpTable AS (EXEC spWhatever)

或者我可以查询从sp返回的数据的任何其他方式?感谢!!!

3 个答案:

答案 0 :(得分:5)

临时表:

CREATE TABLE #foo (col1 int, col2 char(10), ...)

INSERT #foo 
EXEC myproc

或环回(不确定这是否仍然有效)。编辑:根据SQLMenace的回答可以是OPENROWSET

SELECT * FROM OPENQUERY (MyServername, 'USE MyDB EXEC myproc')

答案 1 :(得分:4)

如果您不想首先创建表格,请仅使用环回查询,请参阅此处:Store The Output Of A Stored Procedure In A Table Without Creating A Table

例如

      SELECT * INTO #TempSpWho
            FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;',
    'set fmtonly off exec master.dbo.sp_who')

SELECT * FROM #TempSpWho

答案 2 :(得分:1)

据我所知,你不能。但是你可以尝试使用用户自定义函数(UDF)而不是SP,如果你这样做,你可以像桌子一样使用它。