SQL本地临时表EXEC问题

原创 2013年12月03日 13:52:52

举列子说明问题:

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





关于SQL临时表_SQL中系统临时表的使用和禁忌 及 Exec(SQLScript) 的使用

web测试:SQL中系统临时表的使用和禁忌 及 Exec(SQLScript) 的使用        以前在SQL 中写SP 时,如比较复杂时,喜欢中间使用临时表来暂存相关记录,这样的好处有很多,提高...

SQL的将EXEC()动态执行的结果集放到一张临时表

1.创建一个本地临时表 2.将动态执行的结果集插入到临时表, 3.对临时表进行操作 CREATE TABLE #TEMP (  SupportID INT,  Keywo...

Sqlserver 中临时表和全局临时表

SQL Server 支持临时表。临时表就是那些名称以井号 (#) 开头的表。如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表。临时表不存储在当前数据库内,而是存储在系统数据...
  • hank5658
  • hank5658
  • 2010年04月29日 18:33
  • 11004

SQL中系统临时表的使用和禁忌 及 Exec(SQLScript) 的使用

以前在SQL 中写SP 时,如比较复杂时,喜欢中间使用临时表来暂存相关记录,这样的好处有很多,提高效率,提高程序的可读性等。当然后临时表的使用,一般均会使用用户临时表,即 #TempTable, 但有...

SQL Server 动态SQL EXEC加括号与不加括号的一点小问题

SQL Server 2008 R2关键代码 DECLARE @lv_address VARCHAR(2000), @lv_re_ids V...
  • kxjrzyk
  • kxjrzyk
  • 2015年03月17日 15:08
  • 446

SQL Server 系统表介绍:sys.dm_exec_sessions

管理视图用法
  • peter82
  • peter82
  • 2015年06月19日 09:39
  • 1236

SQL Server 系统表介绍:dm_exec_connections

管理视图
  • peter82
  • peter82
  • 2015年06月19日 09:49
  • 451

sql临时表相关介绍

  • 2013年05月21日 11:12
  • 16KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL本地临时表EXEC问题
举报原因:
原因补充:

(最多只允许输入30个字)