请考虑以下代码:
SET @SQL1 = 'SELECT * INTO #temp WHERE ...' exec(@SQL1) SELECT * from #temp (this line throws an error that #temp doesn't exist)
显然这是因为exec命令会旋转一个单独的会话,而#temp是该会话的本地会话.我可以使用全局临时表## temp,但是我必须提出一个命名方案来避免冲突.你们都推荐什么?
您是否尝试明确创建模板表?
Create Table #temp (..)
尝试## temp因为您的动态查询是在其他光纤上执行的,所以您无法看到其本地临时表.相反,如果你宣布你的临时表像全球,它会产生一种感觉.