博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TSQL--临时表和表变量
阅读量:6358 次
发布时间:2019-06-23

本文共 1143 字,大约阅读时间需要 3 分钟。

1. 临时表适用数据量较大的情况,因为临时表可以建立索引

2. 表变量适用于数据较小的情况,表变量只能在定义时创建约束(PRIMARY KEY/UNIQUE)从而间接建立索引
3. 临时表是事务性的,数据会随着事务回滚而回滚,表变量是非事务性的
4. 临时表和表变量都存放在内存中,当内存存在压力时才放入到硬盘
5. 临时表属于回话级别,除非显式DROP,否则会一直保持到回话结束
6. 表变量属于上下文级别,当前批处理结束后会被立即释放。
7. 临时表的创建删除会导致存储过程重编译,而在存储过程中使用表变量不会引发重编译
8. 用户定义的临时对象(临时表、全局临时表、表变量、游标)都优先存放到内存
9. 临时表和表变量在数据操作时产生的日志远远低于普通表
10.除非使用 DROP TABLE 显式删除临时表,否则临时表将在退出其作用域时由系统自动删除:
    1)当存储过程完成时,将自动删除在存储过程中创建的本地临时表。由创建表的存储过程执行的所有嵌套存储过程都可以引用此表。但调用创建此表的存储过程的进程无法引用此表。
    2)所有其他本地临时表在当前会话结束时都将被自动删除。
    3)全局临时表在创建此表的会话结束且其他所有任务停止对其引用时将被自动删除。任务与表之间的关联只在单个 Transact-SQL语句的生存周期内保持。换言之,当创建全局临时表的会话结束时,最后一条引用此表的 Transact-SQL 语句完成后,将自动删除此表。

 

--==========================================================--创建临时表CREATE TABLE #T4 ([ID] [int] NOT NULL,[STEP] [nvarchar](200) NULL,[DT] [datetime] NULL)--==========================================================--创建临时表DECLARE @T4 TABLE([ID] [int] NOT NULL,[STEP] [nvarchar](200) NULL,[DT] [datetime] NULL)​--==========================================================--创建用户定义表类型,使用表类型定义变量CREATE TYPE dbo.myTB AS TABLE ([ID] [int] NOT NULL,[STEP] [nvarchar](200) NULL,[DT] [datetime] NULL)DECLARE @T4 dbo.myTB
View Code

 

转载地址:http://fpfma.baihongyu.com/

你可能感兴趣的文章
trait,线性化
查看>>
ContentType常用对照表
查看>>
热门iOS与android手机参数
查看>>
随想——微信可能改变生活方式!
查看>>
数据结构之scala 实现链表
查看>>
服务器安全狗Linux版v 2.0发布 永久免费
查看>>
安全狗发布网站后门查杀引擎“啸天”变形网马无处可匿
查看>>
【Raspberry PI + L298N】 小车一
查看>>
进程管理
查看>>
使用HostXen云服务器Centos7之后遇到的问题记录
查看>>
CSS 导航栏
查看>>
关于vim的简单设置以及使用技巧
查看>>
1、Angular JS 学习笔记 - 了解概念
查看>>
js与jquery实时监听输入框值的oninput与onpropertychange方法
查看>>
SQL的分组理解
查看>>
iOS颜色转图片
查看>>
Mybatis3.4.x技术内幕(十九):Mybatis之plugin插件设计原理
查看>>
Java Streams,第 2 部分: 使用流执行聚合
查看>>
Java问答:终极父类(2)—上篇
查看>>
java读取properties文件总结
查看>>