SQL server 中的临时表

临时表分为本地和全局两种。

本地临时表的名称都是以“#”为前缀,只有在本地当前的用户连接中才是可见的,当用户从实例断开连接时被删除。

全局临时表的名称都是以“##”为前缀,创建后对任何用户都是可见的,当所有引用该表的用户断开连接时被删除。

临时表保存在SQL server的tempdb数据库中,无论是本地的还是全局的,当数据库重新启动,tempdb将会被重建,这些表也都会消失

本地临时表只对当前session有效,其他session不能访问到,随着当前session的结束而自动销毁。

全局临时表不以Session结束为销毁时刻。除非手动删除,或者重新启动数据库,否则将一直存在。并且能被所有的用户访问和操作,不能进行权限的管理。所以在涉及重要信息的数据是,应避免使用这种临时表。但是也有它的好处,可以保存一些公共的信息,方便所有用户访问。

用户在会话中可以通过DROP TABLE命令提前销毁临时表

创建临时表:

 

create table #temp
(
id
int not null,
name
char(10),
sex
char(2),
age
int
)
insert into #temp(id,name,sex,age) values(1,'lilei','',21)

 

 

把从一个表中查询到的数据填充到临时表中(该临时表之前必须不存在,如果存在drop掉)

 

select * into #temp1 from borrower

 

 

 把一个表中查询到的数据填充到另一个表中(该表必须不存在)

 

select * into temp1 from borrower

 

posted @ 2009-12-24 21:07  smileflower  阅读(548)  评论(0编辑  收藏  举报