SQL Server2000临时表使用示例

1.本地临时表

--创建
Select top 10 * Into #tmpUnionUser
    From Union_User
    order By Id Desc

--查询
Select * From #tmpUnionUser
--删除
IF object_id('tempdb..#tmpUnionUser') is not null Drop Table #tmpUnionUser

2.全局临时表

--创建
Select top 10 * Into ##tmpUnionUser
    From Union_User
    order By Id Desc
--查询
Select * From ##tmpUnionUser
--删除
IF object_id('tempdb..##tmpUnionUser') is not null Drop Table ##tmpUnionUser

SQL Server2000 联机丛书:

临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。

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

例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安全权限就可以使用该表,除非它已删除。如果创建名为 #employees 的本地临时表,只有您能对该表执行操作且在断开连接时该表删除。如果创建名为 ##employees 的全局临时表,数据表中的任何用户均可对该表执行操作。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果该表在您创建后有其他用户使用,则 SQL Server在所有用户断开连接后删除该表。


2010-04-07补充:全局临时表常常由于没有持续的后继使用者很快就被删除了。大部分情况是,A用户创建了全局临时表,由于没其他使用者或是其他使用者没有及时连上,当A断开时全局临时表也就被删除了,此时全局临时表和本地临时表的差别只是作用域上的不同。

评论: 0 | 引用: 0 | 查看次数: 6315
发表评论
登录后再发表评论!