Erike_zhang的专栏

博学之、审问之、慎思之、明辨之、笃行之

SQL本地临时表EXEC问题

举列子说明问题:

例1  

select * into #tab from users

 select * from #tab
 drop table #tab

结果:

wh   27 陕西
yzp 24 重庆
wb   24 榆林

例2 使用全局临时表

declare @sql varchar(MAX)

 set @sql= 'select * into ##tab from users';
 exec(@sql)
 
 select * from ##tab
 drop table ##tab

结果:

wh   27 陕西
yzp 24 重庆
wb   24 榆林


例3 使用本地临时表

declare @sql varchar(MAX)


 set @sql= 'select * into #tab from users';
 exec(@sql)
 
 select * from #tab
 drop table #tab

 结果报错:

(3 行受影响)
消息 208,级别 16,状态 0,第 6 行
对象名 '#tab' 无效。


问题原因:

当存储过程完成时,将自动删除在存储过程中创建的本地临时表

 set @sql= 'select * into #tab from users';
 exec(@sql)

执行完成后,本地临时表#tab删除





阅读更多
个人分类: 数据库
下一篇js获取当前日期及前一天(年/月/日)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭