SQL 临时表

转载 2012年03月30日 09:48:40
1.临时表

临时表与永久表相似,但临时表存储在 tempdb中,当不再使用时会自动删除。

 

临时表有局部和全局两种类型 

两者比较:

局部临时表的名称以符号 (#)打头

仅对当前的用户连接是可见的

当用户实例断开连接时被自动删除

 

全局临时表的名称以符号 (##)打头

任何用户都是可见的

当所有引用该表的用户断开连接时被自动删除

 

 

实际上局部临时表在tempdb中是有唯一名称的

例如我们用sa登陆一个查询分析器,再用sa登陆另一查询分析器

 

2个查询分析器我们都允许下面的语句:

use pubs

go

select * into #tem from jobs

分别为2个用户创建了2个局部临时表

我们可以从下面的查询语句可以看到

SELECT *FROM [tempdb].[dbo].[sysobjects]

where xtype='u'

判断临时表的存在性:

if exists(select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#tem) and type='U')
    print 'exists'
else
    print 'not exists'

特别提示:

1。在动态sql语句中创建的局部临时表,在语句运行完毕后就自动删除了

所以下面的语句是得不到结果集的

exec('select * into #tems from jobs')

select * from #tems

 

2。在存储过程中用到的临时表在过程运行完毕后会自动删除

但是推荐显式删除,这样有利于系统及时释放资源。

sql 创建临时表 并且插入多条数据

create table #Tmp --创建临时表#Tmp ( tar varchar(50), --修改后 的 目标值 res varchar(50), --修改前 的 ...
  • xu_guowei
  • xu_guowei
  • 2015年07月08日 16:11
  • 7677

SQL 临时表的作用

需求:当我们需要对查询出来的结果进行修改,然后再使用这些数据的时候需要使用到临时表。比如:表A有字段id,name,money。表B有字段id,表B有字段id,name,money。 需要将表A的字...
  • sunhuwh
  • sunhuwh
  • 2016年09月29日 08:15
  • 1841

优化临时表使用,SQL语句性能提升100倍

一个真实的mysql优化案例,优化效果直接提升100倍
  • yah99_wolf
  • yah99_wolf
  • 2013年09月26日 18:18
  • 3568

SQL临时表删除

删除SQL Server临时表和一般表并不相同,下面将为您为别示例错误和正确的删除操作,供您参考,希望对您能够有所帮助。 临时表与一般的表不同,它是保存到tempDb表中。临时表的表名与你所建的表名...
  • sunfor
  • sunfor
  • 2012年07月26日 17:15
  • 22422

sql 定义临时表

declare @year int=year(getdate()) declare @month int=month(getdate()) declare @myYearTable table...
  • zhuyu19911016520
  • zhuyu19911016520
  • 2015年03月17日 10:44
  • 1139

Sql 怎么创建临时表

临时表与永久表相似,但临时表存储在 tempdb 中。临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;...
  • u010355520
  • u010355520
  • 2014年04月13日 10:01
  • 2324

SQLServer性能优化之活用临时表

复杂SQL的调优,建议将SQL分解成若干小SQL后,再逐步找到瓶颈所在
  • baoqiangwang
  • baoqiangwang
  • 2010年07月27日 16:48
  • 4508

SQL生成临时表id自增列

SELECT row_number() over(ORDER BY id) as rows, device_info.id FROM device_info 运行结果如下:...
  • Zoe_1215225
  • Zoe_1215225
  • 2017年10月12日 15:16
  • 397

SQL本地临时表EXEC问题

举列子说明问题: 例1   select * into #tab from users  select * from #tab  drop table #tab 结果: 例2 使用全局临时表...
  • Erike_zhang
  • Erike_zhang
  • 2013年12月03日 13:52
  • 1219

Sqlserver 中临时表和全局临时表

SQL Server 支持临时表。临时表就是那些名称以井号 (#) 开头的表。如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表。临时表不存储在当前数据库内,而是存储在系统数据...
  • hank5658
  • hank5658
  • 2010年04月29日 18:33
  • 11447
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL 临时表
举报原因:
原因补充:

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