我正在尝试编写一些动态SQL查询,将结果选择到带有查询字符串的临时表中。它看起来如下:
DECLARE @SQL Varchar(4000)
SET @SQL = 'SELECT * INTO #tmp_tab FROM dbo.sometable'
EXEC(@SQL)
它不会给运行代码带来任何错误,但是当我想从#tmp_tab
中选择时,表示该表不存在。
所以我想知道它是否有任何特殊的语法,或者动态SQL不支持这样的操作?
非常感谢。
答案 0 :(得分:4)
也许它与访问有关。如果您创建一个全局临时表,它将起作用。
DECLARE @SQL Varchar(4000)
SET @SQL = 'SELECT * INTO ##tmp_tab FROM dbo.batch'
EXEC(@SQL)
SELECT * FROM ##tmp_tab