SQL Server 2008:从存储过程SELECT * INTO TMP

时间:2010-08-09 18:27:23

标签: sql-server tsql

我希望做到以下几点:

select * into tmptbl from sometable

除了'sometable'是一个返回结果集的存储过程并且编辑存储过程以适合我的目标不是一个选项。我也可能知道或不知道程序返回的列和类型。

基本上我正在寻找一种正确的方法:

从exec someSP

中选择*进入tmptbl

这是否可能,如果是这样,怎么办?

1 个答案:

答案 0 :(得分:5)

是的,可以使用像这样的环回查询

SELECT * INTO #tmptbl 
    FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;'
   ,'set fmtonly off exec DatabaseName.dbo.someSP')

此处有更多示例:Store The Output Of A Stored Procedure In A Table Without Creating A Table

请注意,必须首先启用此功能,请参阅此处:How to enable xp_cmdshell and Ad Hoc Distributed Queries on SQL Server 2005