博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小记sql server临时表与表变量的区别
阅读量:5307 次
发布时间:2019-06-14

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

临时表与表变量都可以起到“临时”的作用,那么两者主要的区别是什么呢?

这里不讨论创建方式,以及全局临时表、会话临时表这些,主要记录一下个人对两者的主要区别以及适用情况的看法,有什么不对或补充的地方,欢迎讨论。

区别:

1. 表变量存储在内存中,当创建表变量时,sql server不会产生日志,也不会维护统计信息;表变量的字段不能建立索引;不能有约束和默认值。sql server 认为表变量通常只有很少量的数据。

2. 当创建临时表时,sql server会产生日志,统计信息;临时表的字段可以建立索引,所以它可以存储相对较多的数据;可以有约束和默认值,并且有锁机制。可以说临时表与实际的表几乎是一样的,只不过它是轻量和临时的,可以在想要的时候创建和销毁。

适用情况:

表变量: 如果是很少量数据,那么就用表变量。使用表变量的开销要小于临时表。实际项目用到的地方,例如批量删除,需要传递多个id 作为参数,有的人会拼接id字符串,然后在数据库去解析;我的做法通常是传递xml,然后用xml生成表变量,然后链接表删除。

临时表:有多张表链接查询得到一个小结果集,该结果集需要在本次会话或多个会话里多次使用。

 

转载于:https://www.cnblogs.com/4littleProgrammer/p/4742643.html

你可能感兴趣的文章
Akka-Cluster(3)- ClusterClient, 集群客户端
查看>>
java中基本数据类型和包装类的区别
查看>>
项目指南
查看>>
康托展开
查看>>
MongoDB-CRUD
查看>>
ASM字节码增强技术
查看>>
javaagent 简介
查看>>
C++学习之智能指针
查看>>
python升级安装后的yum的修复
查看>>
Vim配置Node.js开发工具
查看>>
iOS开发者需要的5款排版工具
查看>>
web前端面试题2017
查看>>
Reflection in Teaching
查看>>
intellij idea 将模块打jar包
查看>>
给MySQL增加Sequence管理功能
查看>>
ELMAH——可插拔错误日志工具
查看>>
MySQL学习笔记(四)
查看>>
【Crash Course Psychology】2. Research & Experimentation笔记
查看>>
两数和
查看>>
Python subprocess 模块
查看>>