SQL SELECT 使用查询字符串得到 INTO temp table

SQL SELECT results INTO temp table using query string

我正在尝试编写一些动态 SQL 查询 select 结果为带有查询字符串的临时 table。看起来像这样:

DECLARE @SQL Varchar(4000)

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

EXEC(@SQL)

它没有给 运行 代码任何错误,但是当我想从 #tmp_tab select 时,它说 table 不存在.

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

非常感谢。

可能跟权限有关。如果您创建一个全局临时文件 table,它将起作用。

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

SELECT * FROM ##tmp_tab