2013-02-19 148 views
4

试图将存储过程的输出写入到一个临时表时,我得到错误信息插入输出到一个临时表

消息208,级别16,状态0,4号线
无效的对象名称'#tblTemp'。

我的查询是这样的:

DECLARE @group_name varchar(250) 
SET @group_name = 'somevalue' 

INSERT INTO #tblTemp EXEC mySchema.sp_MyStoredProc @group_name OUTPUT 

SELECT * 
FROM #tblTemp 

DROP TABLE #tblTemp 

这里有什么问题?

感谢您的帮助!

+0

FYI,试图用[链接](http://stackoverflow.com/questions/504431/t-sql-how-to-return-a-table-from-a-storedproc-in -another-stored-proc) – DaFunkyAlex 2013-02-19 13:43:52

回答

4

要在INSERT INTO中以这种方式使用临时表,应首先定义此表。

CREATE TABLE #tblTemp(
ID int, 
.... 
) 

在T-SQL临时表可以自动使用下面的命令来创建:

select * into #tblTemp 
from table 

你可以在你的情况下使用此语法使用OPENROWSET存储过程的结果。

Here is the answer on SO which can help

3

您需要创建#temp表格,例如在声明之前你可以INSERT INTO它。

+0

啊好吧,非常感谢 – DaFunkyAlex 2013-02-19 14:02:27