我希望做到以下几点:
select * into tmptbl from sometable
除了'sometable'是一个返回结果集的存储过程并且编辑存储过程以适合我的目标不是一个选项。我也可能知道或不知道程序返回的列和类型。
基本上我正在寻找一种正确的方法:
从exec someSP
中选择*进入tmptbl这是否可能,如果是这样,怎么办?
答案 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