【发布时间】:2018-03-27 16:09:07
【问题描述】:
我按照几个例子来使用global temp table 比如this & this
我有以下查询将数据放入global temp table:
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = N'SELECT * INTO ##tmpDraftTableData
FROM ' + @DraftTableName
EXEC sp_executesql @SQL
注意@DraftTableName是动态的,来自不同结构的不同表,这就是为什么我需要使用动态查询。
然后我想将从上面全局temp table获取的数据插入到另一个临时表中以循环和处理数据:
SELECT *
INTO #tmpDraftTableData
FROM ##tmpDraftTableData -- ERROR: Invalid object name ##tmpDraftTableData
似乎我无法使用全局临时表并出现错误
无效的对象名称##tmpDraftTableData
与其他示例代码不同。
我在这里做错了什么?
【问题讨论】:
-
“...进入另一个临时表以循环和处理数据”。如果您知道循环数据应该具有哪些列或结构,您是否介意考虑创建一个众所周知的临时表并从@DraftTableName 插入您需要的列?如果临时表是在动态 SQL 之外创建的,您也可以在动态 SQL 之外选择它的内容。
标签: tsql sql-server-2014 global-temp-tables