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

Lou*_*ong 1 t-sql sql-server

我希望做到以下几点:

select * into tmptbl from sometable
Run Code Online (Sandbox Code Playgroud)

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

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

从exec someSP中选择*into tmptbl

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

SQL*_*ace 5

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

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

此处的更多示例:在不创建表的情况下将存储过程的输出存储在表中

请注意,必须先打开它,请参阅此处:如何在SQL Server 2005上启用xp_cmdshell和Ad Hoc Distributed Queries