表不能以这种方式构建?

时间:2018-04-01 19:45:19

标签: sql select sql-server-2017

由于某种原因,这不起作用。任何帮助将不胜感激。

declare @tsql varchar(100)
set @tsql = 'SELECT * INTO #TMPTABLE FROM ' + @tablename
exec(@tsql) 
set @tsql = 'drop table #TMPTABLE'
exec(@tsql)
  

不能删除表'#TMPTABLE',因为它不存在或您没有权限。

但这有效:

 Select * INTO #TMPTABLE FROM EXAMPLETABLE
 set @tsql = 'drop table #TMPTABLE'
 exec(@tsql)

1 个答案:

答案 0 :(得分:0)

关于范围。使用动态SQL时,您将创建新的上下文。本地临时表仅存在于其会话内(不再)。

以下两种情况:

enter image description here