admin 管理员组

文章数量: 1184232


2024年3月13日发(作者:同步电机与异步电机的原理)

SQL 临时表

文章分类:数据库

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

临时表有两种类型:本地和全局。它们在名称、可见性以 及可用性上有区别。本地临

时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL

Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对

任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

例如,如果创建了 employees 表,则任何在数据库中有使用该表的安全权限的用户

都可以使用该表,除非已将其删除。如果数据库会话创建了本地临时表 #employees,则

仅会话可以使用该表,会话断开连接后就将该表删除。如果创建了 ##employees 全局临

时表,则数据库中的任何用户均可使用该表。如果该表在您创建后没有其他用户使用,则

当您断开连接时该表删除。如果您创建该表后另一个用户在使用该 表,则 SQL Server 将

在您断开连接并且所有其他会话不再使用该表时将其删除。

1、局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除。

2、全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都

断开时自动删除。

3、不管局部临时表还是全局临时表,只要连接有访问权限,都可以用drop table

#Tmp(或者drop table ##Tmp)来显式删除临时表。

使用全局临时表需要加上

if object_id('tempdb..##临时表') is not null

drop table ##临时表

else

creeate table ##临时表..

SQL SERVER临时表的使用

drop table #Tmp --删除临时表#Tmp

create table #Tmp --创建临时表#Tmp

(

ID int IDENTITY (1,1) not null, --创建列ID,并且每次新增一条记录就会加1

WokNo varchar(50),

primary key (ID) --定义ID为临时表#Tmp的主键

);


本文标签: 用户 删除 连接