我该怎么做SELECT * INTO [temp table] FROM [stored procedure]?不是FROM [Table],也没有定义[temp table]
Select从BusinessLine到tmpBusLine的所有数据都能正常工作。
select *
into tmpBusLine
from BusinessLine我正在尝试同样的方法,但是使用返回数据的stored procedure并不完全一样。
select *
into tmpBusLine
from
exec getBusinessLineHistory '16 Mar 2009'输出消息:
Msg 156,第15级,状态1,第2行不正确的语法靠近关键字'exec‘。
我读过几个创建临时表的示例,这些表的结构与输出存储过程的结构相同,运行良好,但最好不要提供任何列。
发布于 2009-08-04 15:27:34
为此您可以使用开环。看一看。我还包括了sp_configure代码,以便在尚未启用的情况下启用also分布式查询。
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发布于 2009-03-17 14:08:11
如果您想在不首先声明临时表的情况下这样做,可以尝试创建用户定义的函数而不是存储过程,并使该用户定义的函数返回一个表。或者,如果您想使用存储过程,请尝试如下所示:
CREATE TABLE #tmpBus
(
COL1 INT,
COL2 INT
)
INSERT INTO #tmpBus
Exec SpGetRecords 'Params'发布于 2009-03-17 10:50:17
在Server 2005中,可以使用INSERT INTO ... EXEC将存储过程的结果插入表中。来自文档 (实际上用于Server 2000 ):
--INSERT...EXECUTE procedure example
INSERT author_sales EXECUTE get_author_saleshttps://stackoverflow.com/questions/653714
复制相似问题