SQL Server中的临时表的用法
SQL Server中的临时表的用法
SQL Server中的临时表的用法一。临时表介绍
临时表在运行被创建的,虽说它的名字叫做临时表,可是对它的操作和我们平时操控表的操作基本一样, 比如最简单增、删、改、查等等。但是,需要注意的是临时表的创建是有范围限制的。
二、临时表分类
临时表分为2种,一种是本地临时表,另外一种就是全局临时表。
2.1本地临时表
以一个井号 (#) 开头的那些表名。只有在创建本地临时表的连接上才能看到这些表,链接断开时临时表即被删除(本地临时表为创建它的该链接的会话所独享)或者这样说局部临时表是有当前用户创建的,并且只有当前用户的会话才可以访问。
2.2全局临时表
以两个井号 (##) 开头的那些表名。在所有连接上都能看到全局临时表或者这样说只要这个全局临时表存在,那么用户创建会话后对所有的用户都是可见的。如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去。当创建全局临时表的连接断开后,新的任务不能再引用它们(换句话说旧的任务还何以引用)。当前的语句一执行完,任务与表之间的关联即被除去;因此通常情况下,只要创建全局临时表的连接断开,全局临时表即被除去。
三。临时表的创建
3.1 创建本地临时表
方法一:
create table #临时表名(字段1 约束条件,
字段2 约束条件,
.....)
方法二:
select * into #临时表名 from 你的表;
代码如下:
Create table #Users(ID int,UserName varchar(50),Password varchar(50),RegisterDate Datetime);上面这段代码很简单,也很好理解,因为有一个# 所以它表示创建的是本地临时表。
那这个临时表创建之后,它被放到哪里了呢?它在tempdb表中的Temporary Tables 中,意思很明了 就是“临时”的意思。
比如在我的SQL Server上面:
画黄色那个就是路径,有一条长长的线条,然后后面跟着数字!~对,你没错 这就是临时表的表名。
临时表的全名由 CREATE TABLE 语句中指定的表名和系统生成的数字后缀组成。为了允许追加后缀,为本地临时表指定的 table_name 不能超过 116 个字符。
添加数据操作:
insert into #Users values(1,'Lan','123456','2011.04.23')通过“Select * from #Users”语句,执行查询 如下结果:
但是,如果你把现在的查询窗口关闭了,在重新打开,然后在在查询里输入,则会进行报错,提示 #Users无效。因为本地临时表只是用在当前用户的当前连接中。所以如果当前的连接退出,会自动销毁自己的表。
3.2创建全局临时表
方法一:
create table ##临时表名(字段1 约束条件,
字段2 约束条件,
.....)
方法二:
select * into ##临时表名 from 你的表;
全局临时表的代码基本和本地临时的代码一致,唯一的区域是,本地临时表的表明前面是一个#,而全局临时表的表名是2个##。
如:
Create Table ##Users(ID int,UserName varchar(50),Password varchar(50));它也存储在老地方----Temporary Tables中,
四。什么时候用临时表及注意事项
在下面的3个场景中,可以考虑用到临时表:
- 在存储过程中,我们需要对大量数据进行操作
- 这是游标使用的替代的解决方案,我们可以把结果输入到临时表中,然后在在从临时表中抽取我们所需要的数据。
- 有一个复杂的comple操作的时候,也可以考虑用临时表。
注意事项:
- 在SQL Server中,临时表是被创建在Temporary的tempdb中,所以,在一定程度上,它还是会影响数据库执行时候的性能,也就是性能问题。
- 当临时表做完了它的本职工作之后,临时表会自动删除。
- sql server锁原理(Sql Server 死锁的监控分析解决思路)
- 无法打开sql server的连接(由于系统错误 126 SQL Server,指定驱动程序无法加载)
- 如何在sql server中解密视图(关于SQL Server加密与解密的问题)
- sql server高可用的实现方式(sql server 编译与重编译详解)
- sqlserver2000显示无服务器(SQL SERVER 2000 9003错误的解决方法只适用于SQL2000)
- SQL Server 数据库自动备份
- sqlserver日志目录是否过大(SQL Server利用sp_spaceused如何查看表记录存在不准确的情况)
- SQL Server Management Studio(SSMS)复制数据库的方法(SQL Server Management StudioSSMS复制数据库的方法)
- SQL SERVER数据库状态
- sql server新建用户无法登录(sqlserver 因为选定的用户拥有对象,所以无法除去该用户的解决方法)
- SQL Server中raiserror
- sqlserver怎么加check约束(浅析SQL Server的分页方式 ISNULL与COALESCE性能比较)
- sql server 进阶教程(SQL Server游标的介绍与使用)
- sqlserver 高级查询(利用 SQL Server 过滤索引提高查询语句的性能分析)
- sqlserver安装与使用教程(SQL Server 2017 Developer的下载、安装、配置及SSMS的下载安装配置图文教程详解)
- sql server入门教程(SQL Server AlwaysOn读写分离配置图文教程)
- 自制橡皮泥(自制橡皮泥)
- 还在卖 禁药西布曲明网上论斤卖(还在卖禁药西布曲明网上论斤卖)
- 微商在朋友圈热卖的 DL减肥咖啡 含违禁药物,你还敢买吗(微商在朋友圈热卖的)
- 八一节,说说中国女兵(八一节说说中国女兵)
- 王治郅菜鸟赛季已让八一带入正轨,大郅七大经典语录或是成功秘诀(王治郅菜鸟赛季已让八一带入正轨)
- 庆八一,重读经典红色语录,感悟互联网发展硬道理(重读经典红色语录)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9