关闭

SQL本地临时表EXEC问题

972人阅读 评论(0) 收藏 举报
分类:

举列子说明问题:

例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删除





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:29207次
    • 积分:491
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:2篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论