SQL数据库中的临时表详解

临时表在SQL数据库中,是非常重要的,下面就将为您详细介绍SQL数据库中临时表的特点及其使用,供您参考,希望对您学习SQL Server 能够有所帮助。

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

例如,如果创建了employees表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表,除非已将其删除。如果数据库会话创建了本地临时表 #employees,则仅会话可以使用该表,会话断开连接后就将该表删除。如果创建了 ##employees 全局临时表,则数据库中的任何用户均可使用该表。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果您创建该表后另一个用户在使用该表,则 SQL Server 将在您断开连接并且所有其他会话不再使用该表时将其删除。

conn.Execute(“SELECT newscomment_user_id AS user_id, COUNT(*) AS counter INTO #userNewsComment1 ” _
          & ” FROM newsComment GROUP BY newscomment_user_id “)
          ‘把从newsComment中或的数据集合写入到临时表 #userNewsComment1 中
          ‘newsComment是新闻评价表

         Set rs = conn.Execute(“SELECT TOP 10 a.user_id AS trueId, * FROM userInfo AS a INNER JOIN userPoint AS b ” _
          & ” ON a.user_id = b.user_id INNER JOIN View_Company AS c ON a.user_id = c.user_id ” _
          & ” LEFT OUTER JOIN     #userNewsComment1 AS d ON d.user_id = a.user_id ” _
          & ” WHERE user_isProvinceNewsShow = 1 ” _
          & placeCondition & ” ORDER BY d.counter DESC “)

        conn.execute(“drop table #userNewsComment1”)
        ‘使用完记住删除临时表,这里是删除临时表对象

这里是把临时表运用上

1、临时表就是用户在创建表的时候添加了“#”前缀的表,其特点是根据进程独立。只有进程的拥有者有表的访问权限,其它用户不能访问该表;
2、不同的用户进程,创建的临时表虽然“名字”相同,但是这些表之间相互并不存在任何关系;在SQLSERVER中,通过特别的命名机制保证临时表的进程独立性。
3、定单和购买意向一般不会保存在真正的“临时表”中,而是实际的普通表,之所以称之为“临时表”,只是一种叫法而已。因为随着一个用户进程的结束,真正的临时表会自动清除,而定单和购买意向数据一般是定时清除,所以一定是保存在普通表中,具备数据的持久性特征(临时表最缺乏的就是数据的持久性)。
4、真正的临时表利用了数据库临时表空间,由数据库系统自动进行维护,因此节省了表空间。并且由于临时表空间一般利用虚拟内存,大大减少了硬盘的I/O次数,因此也提高了系统效率。

事务完毕或会话完毕数据自动清空,不必记得用完后删除数据。
      数据当前会话期可见,其它的会话只能看到其结构,只能看到自己的数据,各会话的数据互不干扰。 如静态创建临时表t_tmp(a number primary key,b number)
    用户A可以有数据                 用户B可以有数据
       1 2                          1 2
       2 3                          3 4
       3 4                          6 7
       4 5
A)select count(*) from t_emp; 结果为4(B的数据它看不到)
B)select count(*) from t_emp; 结果为3(A的数据它看不到)
它们有相同的两条记录,但由于数据只作用于当前会话期,所以primary key不会限制它们,只限制当前用户下的A唯一主键。
上述互不干扰特性可以用于处理中间计算过程,如果是常规表在同一时间仅能被一个会话操作,锁定资源拒绝被其它会话访问。
 

 

【编辑推荐】

SQL数据库中事务的ACID特性

SQL中where 1=1语句的作用

SQL中UNION指令的用法

SQL Server中不同用户的权限

测试SQL语句执行时间的方法

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/261978.html<

(0)
运维的头像运维
上一篇2025-05-03 21:30
下一篇 2025-05-03 21:31

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注