临时表存储在tempdb中,当不再使用时会自动删除。临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。
临时表有如下几个特点:
- 本地临时表就是用户在创建表的时候添加了"#"前缀的表,其特点是根据数据库连接独立。只有创建本地临时表的数据库连接有表的访问权,其它连接不能访问该表。
- 不同的数据库连接中,创建的本地临时表虽然“名字”相同,但是这些表之间相互并不存在任何关系;在SQL Server中,通过特别的命名机制保证本地临时表在数据库上的独立性。
- 真正的临时表利用了数据库临时表空间,由数据库系统自动进行维护,因此节省了表空间。并且由于临时表空间一般利用虚拟内存,大大减少了硬盘的I/O次数,因此也提高了系统效率。
(补充:一次磁盘的连续读或者连续写称为一次磁盘 I/O) - 临时表在事务完毕或会话完毕数据自动清空,不必记得用完后删除数据。
- 本地临时表
本地临时表的名称以单个数字符号(#)打头;它们仅对当前的用户连接(也就是创建本地临时表的connection)是可见的;当用户从SQL Server实例断开连接时被删除。
更多请转至此篇查看。临时表的使用,这篇文章介绍得比较全面。上述也是转载自这篇文章:sql临时表的使用详解
在开发过程中,很多时候要把结果集存放到临时表中,常用的方法如下:
转载自:sqlserver临时表用法
SELECT INTO
- 使用select into会自动生成临时表,不需要事先创建
select