用户临时表与系统临时表的区别

时间:2021-05-31 03:39:02

相同点:都可以用 Create 语句进行创建,创建后的查询与针对普通表的方式相同。

不同点:

1. 用户临时表的表名以 # 符号开头,用户临时表只对创建该表的用户的Session可见。

2. 系统临时表的表名以 ## 符号开头,系统临时表对整个SQL Server实例均可见,但当所有访问它的Session都消失的时候,它会被自动删除。


实例:创建一个临时表实现如下功能:

表中有如下记录

2005-09-05 胜

2005-09-05 胜

2005-09-05 负

2005-09-05 负

2005-09-10 胜

2005-09-10 负

2005-09-10 负

如何得到查询结果:

                     胜  负

2005-09-05   2    2

2005-09-10   1    2 

SQL语句:

Create table #jl (rq varchar(10),shengfu nvarchar(1));

insert into #jl values('2005-05-09','胜');
insert into #jl values('2005-05-09','胜');
insert into #jl values('2005-05-09','负');
insert into #jl values('2005-05-09','负');
insert into #jl values('2005-05-10','胜');

select rq as ' ', sum(case shengfu when '胜' then 1 else 0 end) as '胜', sum(case shengfu when '负' then 1 else 0 end) as '负' 
from #jl group by rq