Sql Server临时表的生存周期
创始人
2024-07-16 06:40:27
0

Sql Server临时表的生存周期可能很多人都不是非常了解,下文就为您介绍Sql Server临时表的生存周期,供您参考,希望对您能有所帮助。

局部临时表#temp_table:
只在当前会话结有效。会话终止则生存终止。
根据session不同开辟不一样的内存存放数据。
相同session的用户可以使用同一张临时表,只能create table 一次。
不同session建的临时表,即使表名相同,指向的内存也是不一样的,互相内容不可见。

全局临时表##temp_table:
顾名思义,不同的session可以使用同一块内存。但是其中的内容到底什么时候才被回收呢?

自己做了一个测试,结果用小白文说起来就是:
只要有任何session用到过这个表,且这些session没有被全部终止,就不被回收。
所谓session终止,我的理解,就sqlserver本身来说就是query窗体被关掉。如果是因为有应用程序连接而产生的session的话(以上所说的session都是sqlserver的session),web系就是session重启(IIS application pool重启,这里所说的session是http的session),应用系的话就是充启应用程序了(←猜想,没试过)。

下面是网上找的,概括一下机能就是,创建一个不被自动回收的全局临时表。没有经过测试,虽然貌似看上去没啥意义,和常规表有什么区别?说不定以后有用,所以还是记下来:
USE master;
GO
IF OBJECT_ID('dbo.sp_Globals') IS NOT NULL
  DROP PROC dbo.sp_Globals
GO
CREATE proc dbo.sp_Globals
AS
CREATE TABLE ##Globals
(
id varchar(36) NOT NULL PRIMARY KEY
value varchar(500)
)
GO
↑sp内容

EXEC dbo.sp_procoption 'dbo.sp_Globals','startup','true';

只有显示删除##Globals才会被清除

以上Sql Server临时表的生存周期的介绍。

 

 

【编辑推荐】

SQL SERVER临时表的语法

SQL SERVER恢复的方法

带您深入了解SQL Server事务

SQL Server连接错误的解决方法

25条mysql和sql server区别

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...