临时表的两种类型:本地和全局

       临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

      例如,如果创建了 employees 表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表,除非已将其删除。如果数据库会话创建了本地临时表 #employees,则仅会话可以使用该表,会话断开连接后就将该表删除。如果创建了 ##employees 全局临时表,则数据库中的任何用户均可使用该表。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果您创建该表后另一个用户在使用该 表,则SQL Server 将在您断开连接并且所有其他会话不再使用该表时将其删除。

创建临时表

    CREATE TABLE [##DimCustomer_test]
      (
         [CustomerKey] [int]
         ,    [FirstName] [nvarchar](50)   
     ,[MiddleName] [nvarchar](50)   
     ,[LastName] [nvarchar](50)
         )

  

局部临时表

局部临时表不能够被其它连接所共享的原因其实是在SQL Server 2000中自动为局部临时表的表名后面加上了一个 唯一字符来标识.如:

use Tempdb
select name from sysobjects where name like '%#DimCustomer%'

输出结果是

#DimCustomer_test___________________________________________________________________________________________________0000000006E5




全局临时表

后面是没有标识的,如:

use Tempdb
select name from sysobjects where name like '%##DimCustomer%'

输出结果是

##DimCustomer_test



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值