SQL Server中临时表与表变量的区别

SQL Server 临时表、表变量与WITH语句的用法与区别 SQL Server 数据处理中,临时表、表变量和 CTE 是三大中间结果集工具。临时表适合大数据操作(10万+行),支持索引和事务;表变量内存优先,千行内操作比临时表快3-5倍;CTE 则简化复杂查询逻辑,支持递归处理。选型需考虑数据量、事务需求和代码可读性:小数据用表变量,大数据选临时表,复杂查询优先 CTE。测试表明,临时表10万行插入耗时1.2秒,表变量千行聚合比临时表快3倍,CTE 多表连接比子查询快40%。关键在于根据实际执行计划灵活选择。 阅读详情
SQL Server中临时表与表变量的区别
2009年02月20日 星期五 19:31
我 们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量。在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们 实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢?

  临时表

  临时表与永久表相似,只是它的创建是在Tempdb中,它只有在一个数据库连接结束后或者由SQL命令DROP掉,才会消失,否则就会一直存在。临时表在创建的时候都会产生SQL Server的系统日志,虽它们在Tempdb中体现,是分配在内存中的,它们也支持物理的磁盘,但用户在指定的磁盘里看不到文件。

  临时表分为本地和全局两种,本地临时表的名称都是以“#”为前缀,只有在本地当前的用户连接中才是可见的,当用户从实例断开连接时被删除。全局临时表的名称都是以“##”为前缀,创建后对任何用户都是可见的,当所有引用该表的用户断开连接时被删除。

  下面我们来看一个创建临时表的例子:  

       CREATE TABLE dbo.#News
  (
  News_id int NOT NULL,
  NewsTitle varchar(100),
  NewsContent varchar(2000),
  NewsDateTime datetime
  )

  临时表可以创建索引,也可以定义统计数据,所以可以用数据定义语言(DDL)的声明来阻止临时表添加的限制,约束,并参照完整性,如主键和外键 约束。比如来说,我们现在来为#News表字段NewsDateTime来添加一个默认的GetData()当前日期值,并且为News_id添加一个主 键,我们就可以使用下面的语句: 

      ALTER TABLE dbo.#News
  ADD
  CONSTRAINT [DF_NewsDateTime] DEFAULT (GETDATE()) FOR [NewsDateTime],
  PRIMARY KEY CLUSTERED
  (
  [News_id]
  ) ON [PRIMARY]
  GO

  临时表在创建之后可以修改许多已定义的选项,包括:

  1)添加、修改、删除列。例如,列的名称、长度、数据类型、精度、小数位数以及为空性均可进行修改,只是有一些限制而已。

  2)可添加或删除主键和外键约束。

  3)可添加或删除 UNIQUE 和 CHECK 约束及 DEFAULT 定义(对象)。

  4)可使用 IDENTITY 或 ROWGUIDCOL 属性添加或删除标识符列。虽然 ROWGUIDCOL 属性也可添加至现有列或从现有列删除,但是任何时候在表中只能有一列可具有该属性

5)表及表中所选定的列已注册为全文索引。

  表变量

  表变量创建的语法类似于临时表,区别就在于创建的时候,必须要为之命名。表变量是变量的一种,表变量也分为本地及全局的两种,本地表变量的名称 都是以“@”为前缀,只有在本地当前的用户连接中才可以访问。全局的表变量的名称都是以“@@”为前缀,一般都是系统的全局变量,像我们常用到的,如 @@Error代表错误的号,@@RowCount代表影响的行数。

  如我们看看创建表变量的语句:

     DECLARE @News Table
  (
  News_id int NOT NULL,
  NewsTitle varchar(100),
  NewsContent varchar(2000),
  NewsDateTime datetime
  )

  比较临时表及表变量都可以通过SQL的选择、插入、更新及删除语句,它们的的不同主要体现在以下这些:

  1)表变量是存储在内存中的,当用户在访问表变量的时候,SQL Server是不产生日志的,而在临时表中是产生日志的;

  2)在表变量中,是不允许有非聚集索引的;

  3)表变量是不允许有DEFAULT默认值,也不允许有约束;

  4)临时表上的统计信息是健全而可靠的,但是表变量上的统计信息是不可靠的;

  5)临时表中是有锁的机制,而表变量中就没有锁的机制。

  我们现在来看一个完整的例子,来看它们的用法的异同:

  利用临时表  

       CREATE TABLE dbo.#News
  (
  News_id int NOT NULL,
  NewsTitle varchar(100),
  NewsContent varchar(2000),
  NewsDateTime datetime
  )
  INSERT INTO dbo.#News (News_id, NewsTitle, NewsContent, NewsDateTime)
  VALUES (1,'BlueGreen', 'Austen', 200801, GETDATE())
  SELECT News_id, NewsTitle, NewsContent, NewsDateTime FROM dbo.#News
  DROP TABLE dbo.[#News]

  利用表变量      

      DECLARE @News table
  (
  News_id int NOT NULL,
  NewsTitle varchar(100),
  NewsContent varchar(2000),
  NewsDateTime datetime
  )
  INSERT INTO @News (News_id, NewsTitle, NewsContent, NewsDateTime)
  VALUES (1,'BlueGreen', 'Austen', 200801, GETDATE())
  SELECT News_id, NewsTitle, NewsContent, NewsDateTime FROM @News

  我们可以看到上面两种情况实现的是一样的效果,第一种利用临时表的时候,临时表一般被创建后,如果在执行的时候,没有通过DROP Table的操作,第二次就不能再被创建,而定义表变量也不需要进行DROP Table的操作,一次执行完成后就会消失。

  其实在选择临时表还是表变量的时候,我们大多数情况下在使用的时候都是可以的,但一般我们需要遵循下面这个情况,选择对应的方式:

  1)使用表变量主要需要考虑的就是应用程序对内存的压力,如果代码的运行实例很多,就要特别注意内存变量对内存的消耗。我们对于较小的数据或者 是通过计算出来的推荐使用表变量。如果数据的结果比较大,在代码中用于临时计算,在选取的时候没有什么分组的聚合,就可以考虑使用表变量。

  2)一般对于大的数据结果,或者因为统计出来的数据为了便于更好的优化,我们就推荐使用临时表,同时还可以创建索引,由于临时表是存放在Tempdb中,一般默认分配的空间很少,需要对tempdb进行调优,增大其存储的空间。

补充:
      1.使事务日志不会记录表变量。因此,它们脱离了事务机制的范围。

      2.任何一个使用临时表的存储过程都不会被预编译,然而使用表变量的存储过程的执行计划可以预先静态的编译。预编译一个脚本的主要好处在于加快了执行的速度。这个好处对于长的存储过程更加显著,因为对它来说重新编译代价太高。

      3.表变量仅存在于那些变量能存在的相同范围内。和临时表相反,它们在内部存储过程和exec(string)语句里是不可见的。它们也不能在insert/exec语句里使用。

 

 
相关文章:
•SQL Server中的临时表和表变量         •如何灵活运用SQL Server 2005 SS...
•sql server存储过程中SELECT 与 ...         •再议SQL Server临时表和表变量
•Oracle,SQL Server,MySQL的自增...         •sql server 表变量和临时表的比...
•SQL server 动态SQL对变量讲行赋...         •SQL SERVER 编程结构 1)程序注...
•关于SQL server 2005的安装问题         •安装 SQL Server 2005 时出现错...

更多>>

 

http://hi.baidu.com/zck98530/blog/item/ca369c3d10f82107bba1677a.html

SQL Server中的临时表和表变量

再议SQL Server临时表和表变量
2008-08-21 16:33
  今天在我和一家软件公司的开发人员讨论数据库设计调优的时候又讨论到了表变量和临时表的问题,觉得这个问题确实是一个争议比较大的问题。

 

  其实从上次发表了表变量和临时表的一个帖子http: //database.ctocio.com.cn/tips/442/8206442.shtml以来,也有些人留言,也有些人发过邮件讨论这个问题。 其实表变量和临时表的区别虽然有一些,但是两者最根本的区别还是在于对存储的需求:表变量和临时表都消耗Tempdb中的存储空间,但是进行数据更新的时 候,表变量不会写日志,而临时表则会写日志。(这一点是经过脚本测试的,表变量并不像我们想象的那样,只写在内存而不出现在Tempdb中。)

  对优化的支持:表变量不支持索引和统计数据,临时表则可以支持索引和统计数据。

  通常需要表变量或者临时表的情况都是一些需要支持临时计算结果集的地方,那么就有一些常见的情况了:

  如果临时结果集仅仅需要往里面写数据,比如通过一个循环多次查找相关数据并合成一个临时结果集,那么就可以使用表变量。(结果有人提到了返回结 果集的时候需要有排序,但是表变量不支持索引阿。其实这个不要紧,因为表变量虽然不支持索引,但是表变量支持主键阿,所以可以利用主键来替代索引。)

  如果临时结果集不太多需要更改,而是更多地充当一个临时的关联数据集去参加各种数据集的连接(JOIN),那么索引和统计数据可能会更加适合一些(当然这个临时结果集要足够大,这样索引和统计数据带来的代价才可以被弥补掉)。

  由于表变量不支持统计数据,因此在一个存储过程中使用表变量可以减少由于数据变化而导致的重新编译问题。

  当然,除了索引和统计数据这个明显的限制外,表变量同时也不支持并行执行计划,因此对于大型的临时结果集,表变量也不是一个好的选择。

  前面一个关于表变量和临时表的贴子,有一位robi_xu的朋友提到的问题也确实是在选择表变量和临时表时候的一些问题。

  对于函数中不能支持临时表是由于函数不能对函数作用域外部的资源状态造成永久性的更改,在SQLServer中也称为副作用 (sideeffect)。不过如果在函数中使用大型的临时结果集是不推荐的,因为如果将这样的函数放置到一个查询中会造成很明显的性能问题,因此这种情 况一般都采用存储过程之类的批处理脚本。

  对于动态脚本不支持表变量的原因是因为存储过程不接受表类型的参数。不过如果表变量的声明和赋值都在sp_executesql的参数中的话, sp_executesql就可以执行了,因为这个时候表变量就存在sp_executesql的stmt参数里面,不需要传入,例如下面的代码:(当然 这样的实用性也就没有多少了)

  DECLARE @m nvarchar(max)

  SET @m = N"DECLARE @t TABLE (ID int);INSERT INTO @tVALUES(1);SELECT * FROM @t T"

  EXEC sp_executesql @m

  作者:DrillChina


 
相关文章:
•关于SQL server 2005的安装问题         •安装 SQL Server 2005 时出现错...
•研究SQL Server 导入海量数据的...         •SQL Server数据库被挂马的解决方...
•SQL Server 2005和SQL Server 20...         •--sp_helptext 获取存储过程的创...
•---获取用户创建的存储过程列表 ...         •VB访问SQL Server数据库技术全揭...
•Sql server 2000安装教程及注意...         •SQL Server 2000 JDBC驱动下载
作者: DrillChina,  出处:blog, 责任编辑: 李书琴,
2008-07-08 10:05
  在SQL Server的性能调优中,有一个不可比拟的问题:那就是如何在一段需要长时间的代码或被频繁调用的代码中处理临时数据集?表变量和临时表是两种选择。

  在SQL Server的性能调优中,有一个不可比拟的问题:那就是如何在一段需要长时间的代码或被频繁调用的代码中处理临时数据集?表变量和临时表是两种选择。记 得在给一家国内首屈一指的海运公司作SQL Server应用性能评估和调优的时候就看到过大量的临时数据集处理需求,而他们的开发人员就无法确定什么时候用临时表,什么时候用表变量,因此他们就简 单的使用了临时表。实际上临时表和表变量都有特定的适用环境。

  先卖弄一些基础的知识:

  表变量

  变量都以@或@@为前缀,表变量是变量的一种,另外一种变量被称为标量(可以理解为标准变量,就是标准数据类型的变量,例如整型int或者日期 型DateTime)。以@前缀的表变量是本地的,因此只有在当前用户会话中才可以访问,而@@前缀的表变量是全局的,通常都是系统变量,比如说 @@error代表最近的一个T-SQL语句的报错号。当然因为表变量首先是个变量,因此它只能在一个Batch中生存,也就是我们所说的边界,超出了这 个边界,表变量也就消亡了。

  表变量存放在内存中,正是因为这一点所有用户访问表变量的时候SQL Server是不需要生成日志。同时变量是不需要考虑其他会话访问的问题,因此也不需要锁机制,对于非常繁忙的系统来说,避免锁的使用可以减少一部分系统负载。

  表变量另外还有一个限制就是不能创建索引,当然也不存在统计数据的问题,因此在用户访问表变量的时候也就不存在执行计划选择的问题了(也就是以为着编译阶段后就没有优化阶段了),这一特性有的时候是件好事,而有些时候却会造成一些麻烦。

  临时表

  临时对象都以#或##为前缀,临时表是临时对象的一种,还有例如临时存储过程、临时函数之类的临时对象,临时对象都存储在tempdb中。以# 前缀的临时表为本地的,因此只有在当前用户会话中才可以访问,而##前缀的临时表是全局的,因此所有用户会话都可以访问。临时表以会话为边界,只要创建临 时表的会话没有结束,临时表就会持续存在,当然用户在会话中可以通过DROP TABLE命令提前销毁临时表。

  我们前面说过临时表存储在tempdb中,因此临时表的访问是有可能造成物理IO的,当然在修改时也需要生成日志来确保一致性,同时锁机制也是不可缺少的。

  跟表变量另外一个显著去别就是临时表可以创建索引,也可以定义统计数据,因此SQL Server在处理访问临时表的语句时需要考虑执行计划优化的问题。

  表变量 vs. 临时表

表变量临时表
数据集的存储位置内存(不考虑被换到页面文件这种情况)磁盘(不考虑访问后被缓存到内存中)
是否需要日志否是
是否可以创建索引否是
是否可以使用统计数据否是
是否可以在多会话中访问否是
是否需要锁机制否是

  结论

  综上所述,大家会发现临时表和表变量在底层处理机制上是有很多差别的。

  简单地总结,我们对于较小的临时计算用数据集推荐使用表变量。如果数据集比较大,如果在代码中用于临时计算,同时这种临时使用永远都是简单的全 数据集扫描而不需要考虑什么优化,比如说没有分组或分组很少的聚合(比如说COUNT、SUM、AVERAGE、MAX等),也可以考虑使用表变量。使用 表变量另外一个考虑因素是应用环境的内存压力,如果代码的运行实例很多,就要特别注意内存变量对内存的消耗。

  一般对于大的数据集我们推荐使用临时表,同时创建索引,或者通过SQL Server的统计数据(Statisitcs)自动创建和维护功能来提供访问SQL语句的优化。如果需要在多个用户会话间交换数据,当然临时表就是唯一 的选择了。需要提及的是,由于临时表存放在tempdb中,因此要注意tempdb的调优。


 
相关文章:
•SQL Server中临时表与表变量的区...         •如何灵活运用SQL Server 2005 SS...
•sql server存储过程中SELECT 与 ...         •Oracle,SQL Server,MySQL的自增...
•sql server 表变量和临时表的比...         •SQL server 动态SQL对变量讲行赋...
•SQL SERVER 编程结构 1)程序注...         •关于SQL server 2005的安装问题
•安装 SQL Server 2005 时出现错...         •研究SQL Server 导入海量数据的...
SQL Server 表变量和临时表的区别(详细补充篇) 一、表变量   表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是表变量通过DECLARE @local_variable语句进行定义。   表变量的特征: 1.表变量拥有特定作用域(在当前批处理语句中,但不在任何当前批处理语句调用的存储过程和函数中),表变量在批处理结束后自动被清除。 2.表变量较临时表产生更少的存储过程重编译。 3.针对表变量的事务仅仅在更新 立即下载

相关推荐

告别懵圈!用CANoe 5640手把手带你跑通SomeIP TC8测试(附脚本思路)

本文详细解析了基于CANoe 5640的SomeIP TC8测试全流程,从环境搭建到结果分析,特别针对车载以太网测试中的SomeIP协议测试难点提供实战指南。通过典型测试用例SOMEIP_TEST_61,手把手教你配置CANoe工程、编写CAPL脚本,并解决常见问题,助力开发者高效完成协议验证。

weixin_30791095的博客 360

【Sql Server】数据库变量表和临时表的区别,并运用变量表遍历和随机生成姓名记录

掌握了临时表变量和临时表,对于初始化表数据是非常有用的。变量表占内存适合数据量小情况,临时表不占内存,适合数据量大情况

小5聊的博客 2938

保姆级避坑指南:用Docker在Ubuntu 22.04上部署Isaac Sim 5.1.0,搞定宇树G1仿真环境

本文提供了一份详细的保姆级避坑指南,帮助用户在Ubuntu 22.04上通过Docker部署Isaac Sim 5.1.0,并成功搭建宇树G1仿真环境。文章涵盖了环境准备、Docker与NVIDIA容器工具包的配置、Isaac Sim镜像的定制化拉取与配置,以及宇树G1仿真环境的实战调试,旨在帮助开发者高效解决部署过程中的常见问题。

weixin_33728268的博客 205

sql 定义临时变量,给变量赋值

declare @a int , @b varchar(22); set @b= 13656221310; set @a=(select id from pt_user where login_id = @b); select @a insert into cfg_user_project (user_id,project_id,system_id) VALUES (@a,'282','2'); insert into cfg_user_sec (user_id,sec_id,proje.

阿涩的博客 4669

XCAT集群管理实战:从裸机到节点批量部署

在数据中心与HPC集群运维中,裸机配置与操作系统批量部署是关键环节。PXE引导、IPMI带外管理等基础技术为自动化装机提供了底层支持,而集群管理工具则将这些能力整合为可扩展的运维体系。XCAT作为一款开源集群管理工具,通过数据库驱动的方式统一管理DHCP、TFTP、HTTP等服务,实现从裸机发现、系统安装到电源控制的全流程自动化。本文从XCAT的核心设计出发,详细介绍了环境准备、安装配置、节点定义、镜像分发及常见问题排查,帮助运维人员快速构建高效的集群部署流程,降低规模化管理的复杂度。

weixin_30899023的博客 241

基于深度学习实现实时视频目标检测

实时视频目标检测是计算机视觉领域的研究热点之一,其应用场景包括智能监控、自动驾驶、机器人视觉等多个领域。深度学习技术的快速发展使得实时视频目标检测变得更加可行和准确。本文提出一种基于深度学习实现的实时视频目标检测系统,使用Python和OpenCV作为开发工具,具有高效、准确和实时的特点。 本系统的主要需求是实现实时视频目标检测功能,可以在不同的应用场景中使用。具体的需求如下:2.1 视频输入本系统需要从摄像头或视频文件中获取实时视频流,并对视频流中的目标进行检测和跟踪。2.2 目标检测本系统需要使用深度学

分享毕业设计的案例和论文 1940

SQL Server中的表变量

In this article, we will explore the table variable in SQL Server with various examples and we will also discuss some useful tips about the table variables. 在本文中,我们将通过各种示例探索SQL Server中的表变...

culuo4781的博客 7180

ubuntu17.04 UHD 驱动出错

ubuntu 17.04 源码安装UHD

xrh003的博客 1万+

SQL Server表变量概述

dbForge Studio for SQL Server为有效的探索、分析SQL Server数据库中的大型数据集提供全面的解决方案,并设计各种报表以帮助作出合理的决策。 点击下载dbForge Studio for SQL Server最新试用版 在本文中,我们将探索SQL Server表变量的基础,比较本地临时表与全局临时表与表变量,并检查使用dbForge Studio for SQL Server执行的查询执行计划。 SQL Server表变量概述 表变量是一种SQL Server数据类型

qq_42444778的博客 1249

Endnote 导入参考文献的时候,格式错误太多了。et.al错误,国标GBT7714在endnote中的详细配置教程,适用于本科,硕士论文文献插入的模板

EndNote插入文献常遇到以下错误主要如下: 等、et al不分; 英文作者全名大写; 期刊名字使用了缩写(图片里没有体现;卷号、期号缺失时出现乱码,多了半个括号;页码范围略去了相同部分;没有悬挂缩进,本文全部解决,全网最细

sakura的博客 3万+

Field _II 仿真 学习笔记

参考Field II的使用说明,进行了四个例子的练习。仿真程序和结果如下: PURPOSE1:Calculate the received response from all elements of a linear array and plot the responses and the summed response 【计算来自所有线性阵元的接收响应,并绘制该响应以及叠加响应。】 >>

qq_34018578的博客 1万+

临时表和表变量的区别

1 临时表可以支持事务级的回滚操作(undo),但不支持前滚操作(redo),表变量不支持事务级的回滚操作,只是支持语句级的回滚。 2 临时表上的统计信息是健全而可靠的,但是表变量上的统计信息是不可靠的。 3 临时表的编译阀值非常低,但是表变量的编译阀值更低。这个后朋友寻觅经过测试,表变量是不存在编译阀值的。 4 范围不同。临时表为会话级,表变量为变量级,在自己的代码声明区间内有效。 5 ...

weixin_34149796的博客 274

【AI产品与商业航图】Flux.1 完全开源 AI 绘图模型:本地部署与 ComfyUI 实战指南

Flux.1是一个开源项目,用户可以自由使用和修改,完全免除使用费用。🖥️本地部署支持:与一些依赖云端计算的工具不同,Flux.1支持本地部署,确保用户可以离线使用并自主控制数据隐私。🔄兼容ComfyUI框架:Flux.1可以无缝集成到ComfyUI中,用户可以享受更加简便和直观的操作界面。🎨卓越的图像生成能力:Flux.1能够生成高质量、细腻的图像,支持多种风格与创作主题的切换。💾低硬件要求。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1736

临时表和表变量区别,SQL Server里的视图和临时表在哪里?

临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。 临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Serv

sun_apple_123 1436

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SQL Server 表变量与临时表区别

问题 1:为什么在已经有了临时表的情况下还要引入表变量?解答 1:与临时表相比,表变量具有下列优点: • 如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义的范围,在该范围结束时会自动清除这些表变量。

浮生若梦 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SQL Server 表变量和临时表的区别

一、表变量   表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是表变量通过DECLARE @local_variable语句进行定义。   表变量的特征: 表...

u014712365的博客 70

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

php sql server临时表,SQLServer中临时表与表变量的区别分析

在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢?临时表临时表与永久表相似,只是它的创建是在Tempdb中,它只有在一个数据库连接结束后或者由SQL命令DROP掉,才会消失,否则就会一直存在。临时表在创建的时候都会产生SQL Server的系统日志,虽它们在Tempdb...

weixin_39883079的博客 219
上一篇: luawrapper!!!!
下一篇: 如何将SQL Server表驻留内存和检测
skyremember
博客等级 码龄20年 204粉丝 484原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值