我正在尝试编写一些动态 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不支持这样的操作?
非常感谢。
也许它与访问有关。如果您创建一个全局临时表,它将起作用。
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)