临时表,是临时使用的一张表。有两种临时表:
- 本地临时表:只能在当前查询页面使用,新开查询不能使用它。
在表名前加#即可得本地临时表。eg:
select TOP 10 * into #temp from table1;
select * from #temp;
如果新开一个页面重新执行该句 select * from #temp; 是无效的。
当存储过程完成时,将自动除去在存储过程中创建的本地临时表。
- 全局临时表:不管开多少查询页面都可使用。
在表名前加##即可得到全局临时表,打开任何一个查询页面都可以使用它。eg:
select TOP 10 * into ##temp from table1;
select * from ##temp;
此时新开一个页面重新执行该句 select * from ##temp;仍然是有效的。
全局临时表在创建此表的会话结束且其他任务停止对其引用时自动除去。
临时表的作用:
临时表可以在比较复杂的嵌套查询中提高查询效率。
在多层嵌套子查询的条件下,可以将子查询抽出来放到临时表中,再用外查询直接查临时表。
以上参考https://mp.weixin.qq.com/s/fg2meUpZVFUDGoppX9vCWQ