使用查询字符串的 SQL SELECT 结果 INTO 临时表

Cha*_*ame -1 sql temp-tables

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

DECLARE @SQL Varchar(4000)

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

EXEC(@SQL)
Run Code Online (Sandbox Code Playgroud)

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

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

非常感谢。

Jus*_*Pup 5

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

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

SELECT * FROM ##tmp_tab
Run Code Online (Sandbox Code Playgroud)