SQL SELECT使用查询字符串生成INTO临时表

时间:2015-03-23 13:52:31

标签: sql temp-tables

我正在尝试编写一些动态SQL查询,将结果选择到带有查询字符串的临时表中。它看起来如下:

DECLARE @SQL Varchar(4000)

SET @SQL = 'SELECT * INTO #tmp_tab FROM dbo.sometable'

EXEC(@SQL)

它不会给运行代码带来任何错误,但是当我想从#tmp_tab中选择时,表示该表不存在。

所以我想知道它是否有任何特殊的语法,或者动态SQL不支持这样的操作?

非常感谢。

1 个答案:

答案 0 :(得分:4)

也许它与访问有关。如果您创建一个全局临时表,它将起作用。

DECLARE @SQL Varchar(4000)
SET @SQL = 'SELECT * INTO ##tmp_tab FROM dbo.batch'
EXEC(@SQL)

SELECT * FROM ##tmp_tab