序言

为什么需要临时表?

  临时表利用了数据库临时表空间,由数据库系统自动进行维护,因此节省了物理表空间。并且由于临时表空间一般利用虚拟内存,大大减少了硬盘的I/O次数,因此也提高了系统效率。
  临时表在事务完毕或会话完毕数据库会自动清空,不必记得用完后删除数据。

临时表

什么是临时表

  临时表属于会话级的,会话结束的时候,临时表被释放,其创建、使用、删除都和普通表一样,临时表空间一般利用虚拟内存,不必进行磁盘I/O,因此效率较高。

  临时表有两种:普通临时表 (#TbName)和全局临时表(##TbName)

  普通临时表  属于创建该临时表的会话,会话结束时被释放,其他的会话不能使用

  全局临时表  属于所有的会话,在所有会话结束时被释放

  适用场合:高并发的场合(操作频繁,查询又多)

本地临时表

  适合开销昂贵   结果集是个非常小的集合

  本地临时表就是用户在创建表的时候添加了"#"前缀的表,其特点是根据数据库连接独立。只有创建本地临时表的数据库连接有表的访问权限,其它连接不能访问该表;

  不同的数据库连接中,创建的本地临时表虽然"名字"相同,但是这些表之间相互并不存在任何关系;在SQLSERVER中,通过特别的命名机制保证本地临时表在数据库连接上的独立性,意思是你可以在不同的连接里使用相同的本地临时表名称。

--创建临时表
    create table #MyUserInfo
    (
      id int primary key identity(1,1),
      username nvarchar(20)
    )
--使用临时表
    select * from #MyUserInfo

--释放资源
    drop table #MyUserInfo

--临时表的常用方式,把用户表的数据存入一个临时表(#MyUserInfo)中
    select * into #MyUserInfo from Tb_UserInfo
    select * from #MyUserInfo  

--全局临时表,用法和普通临时表一样,用##TbName标识(开发中尽量不要自己创建,其他人也可能创建一个相同的全局临时表造成冲突)
    select into ##myUserInfoG from Tb_UserInfo
    drop table ##myUserInfoG
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-27
猜你喜欢
  • 2021-09-20
  • 2021-12-12
  • 2022-12-23
  • 2022-12-23
  • 2022-03-01
相关资源
相似解决方案