临时表

SQL Server 支持三种类型的临时表:局部临时表、全局临时表及表变量。全部三种类型的临时表都是在tempdb数据库中建立的。数据库

1. 局部临时表函数

要建立局部临时表,只须要在命名时以单个数字符号(#)做为前缀,例如#T1。内存

局部临时表只对建立它的会话在建立级和调用堆栈内部级(内部的过程、函数、触发器、以及动态批处理)是可见的。当建立级例程弹出调用堆栈,SQL Server 就会自动删除相应的临时表。变量

2. 全局临时表权限

若是建立的是全局临时表,则它对其余全部会话均可见。当建立临时表的会话断开数据库的联接,并且也没有活动在引用全局临时表,SQL Server 会自动删除相应的全局临时表。要建立全局临时表,只须要在命名时用两个数字符号(##)做为前缀,如##T1。引用

当须要和全部人共享临时数据时,就能够用全局临时表。访问全局临时表不须要任何特殊的权限,全部人均可以获取完整的DDL和DML访问。固然,每一个人均可以彻底访问也意味着任何人均可以删除这个表,因此也应该谨慎考虑全局临时表的反作用。命名

注意:只要建立全局临时表的会话断开了数据库的联接,并且也没有其余活动引用全局临时表,SQL Server 就会自动删除它。数据

3. 表变量和局部临时表在某些方面有相同之处,也有不一样之处。声明表变量的方式和声明其余变量相似,使用的都是DECLARE语句。db

和使用局部临时表同样,表变量在tempdb数据库中也有对应的表做为其物理表示,而不是像一般所理解的那样,觉得表变量只在内存中存在。和局部临时表相似,表变量也只对建立它的会话可见,但容许访问的范围更有限,它只对当前批处理可见。表变量对调用堆栈中当前批处理的内部批处理是不可见的,对会话中随后的批处理也是不可见的。字符

相关文章
相关标签/搜索