发布日期:2018-03-26
将存储过程的结果插入到临时表中+ 查看更多
将存储过程的结果插入到临时表中
+ 查看更多
发布日期:2018-02-23 10:04
分类:SQL
浏览次数:170
我该如何做一个存储过程:`SELECT * INTO [temp table] FROM [stored procedure]`?
不FROM [Table]而且不定义[temp table]?
不FROM [Table]而且不定义[temp table]?
从BusinessLine选择所有数据到tmpBusLine工作正常。
select * into tmpBusLine from BusinessLine
我尝试使用返回数据的存储过程弄出同样的效果,但结果完全不相同。
select * into tmpBusLine from exec getBusinessLineHistory '16 Mar 2009'
输出消息:
消息156,级别15,状态1,行2关键字“exec”附近的语法错误。
我已经阅读了几个创建一个与输出存储过程相同结构的临时表的例子,那些可以用,但是不提供任何列就更好了.
回答:
您可以使用OPENROWSET进行此操作。看一下。我还包括sp_configure代码来启用Ad Hoc分布式查询,以防其尚未启用。
CREATE PROC getBusinessLineHistory AS BEGIN SELECT * FROM sys.databases END GO sp_configure 'Show Advanced Options', 1 GO RECONFIGURE GO sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE GO SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;', 'EXEC getBusinessLineHistory') SELECT * FROM #MyTempTable