在临时表中的存储过程中插入sql查询结果

时间:2015-01-07 07:14:03

标签: sql sql-server tsql stored-procedures insert

我有存储过程,我将整个查询存储在字符串中然后执行它。现在我想将执行结果存储到临时表中以便进一步处理。 如下所示:

Exec @Mainsql - 这会返回查询结果,我需要将其结果插入临时表

我试过这样的事情:

Select * Into #TempTable
   From         
      Exec @MainSQL 

但我觉得它缺乏语法。

所以,我需要mainsql的结果进入temptable

2 个答案:

答案 0 :(得分:0)

试试这个:

CREATE TABLE #TempTable AS 
Exec @MainSQL 

答案 1 :(得分:0)

您必须首先创建临时表,如果需要使用存储过程插入数据,则必须定义将从过程返回的所有列:

CREATE TABLE #TempTable (Col1 INT, Col2 VARCHAR(10))
INSERT INTO #TempTable
EXEC [ProcedureName]

另一种选择是使用OPENROWSET,如果您不知道返回的列:

SELECT * INTO #TempTable
FROM OPENROWSET('SQLNCLI', 'Server=.;Trusted_Connection=yes;', 'EXEC DBName.Schema.ProcedureName')