小编典典

将存储过程的结果插入临时表

sql

我该怎么办SELECT * INTO [temp table] FROM [stored procedure]?不FROM [Table],没有定义[temp table]?

Select所有数据都可以BusinessLine正常tmpBusLine工作。

select *
into tmpBusLine
from BusinessLine

我正在尝试相同的方法,但是使用stored procedure返回数据的a并不完全相同。

select *
into tmpBusLine
from
exec getBusinessLineHistory '16 Mar 2009'

输出信息:

消息156,级别15,状态1,第2行关键字“ exec”附近的语法错误。

我已经阅读了几个创建与输出存储过程具有相同结构的临时表的示例,该示例工作正常,但是最好不要提供任何列。


阅读 245

收藏
2021-04-18

共1个答案

小编典典

您可以为此使用OPENROWSET。看一看。我还包括了sp_configure代码,以启用临时分布式查询(如果尚未启用)。

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
2021-04-18