临时表
也可以创建临时表。临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。

解决方案 »

  1.   

    #abc:是局部臨時表﹐只在一個會話中可見
    ##abc:是全局臨時表﹐在任一個會話中都可見
      

  2.   

    联机帮助(sp3)
    http://soft.mesky.net/SoftDown.asp?ID=72
      

  3.   

    临时表
    临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。
      

  4.   

    SQL Server在每次重启服务时会重建tempdb数据库如果系统运行过程中 tempdb因需要自动增长了,SQL Serve不会记住增长后的大小,重启服务后仍然恢复到初始大小,
    但如果用户使用了手工调整tempdb的大小,重启服务SQL Server会把tempdb重建为用户指定大小测试示例tempdb初始化大小为8MB1)使tempdb自动增长
    select b.* into #t from sysprocesses a,sysobjects b
    重启后使用sp_helpdb 'tempdb'
    可以看到tempdb又恢复到8MB
    2) 用户使用Alter Database调整为100MB,USE master
    GO
    ALTER DATABASE tempdb
    MODIFY FILE
       (NAME = tempdev,SIZE = 100MB)重启服务后使用查看tempdb大小就为100MB以下查询可以看到tempdb的变化
    select a.filename,a.name,a.size*8.0/1024.0 as originalsize_MB,
    f.size*8.0/1024.0 as currentsize_MB
    from master..sysaltfiles a join tempdb..sysfiles f on a.fileid=f.fileid
    where dbid=db_id('tempdb')
    and a.size<>f.size总结:
    当系统自动调整tempdb大小时,对文件的读写将暂时的阻塞
    所以如果我们预知tempdb将会增加到某个大小时,可以自行调整,从而避免性能下降