`

SQL SERVER 临时表与表变量的使用方法

    博客分类:
  • C#
阅读更多

SQL SERVER 临时表与表变量的使用方法

SQL SERVER的临时表有本地临时表和全局临时表之分,在联机丛书中这样描述:

有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。


在存储过程中创建的本地临时表,相当于存储过程的变量,只在存储过程内可见,而在前台程序中创建的本地临时表,就和微软联机丛书中所写的一样,是对当前的用户连接可见。了解了这些,可以在不同场合不同需求下使用不同的方法来创建本地临时表,这样,会使临时表发挥它最大的用处。

 

  /*****************表变量********************/    
 declare @t table(    
 cataid int    
 )    
   
 insert into @t select a.cataid from f_getchlid(27,'5961051') a    
 select top 10 favorites.*,multicata.cataname    
 from favorites left outer join multicata on favorites.cataid=multicata.cataid    
 where favorites.userid='5961051' and favorites.cataid in (    
 select * from @t)    
   
   
 /****************临时表************************/    
 方法一、    
 select a.cataid into t from f_getchlid(27,'5961051') a    
 select top 10 favorites.*,multicata.cataname    
 from favorites left outer join multicata on favorites.cataid=multicata.cataid    
 where favorites.userid='5961051' and favorites.cataid in (    
 select * from t)    
 drop table t    
   
   
 方法二、    
 create table t (    
 cataid int    
 )    
 insert into t select a.cataid from zhaoguoguang.f_getchlid(27,'5961051') a    
 select top 10 favorites.*,multicata.cataname    
 from favorites left outer join multicata on favorites.cataid=multicata.cataid    
 where favorites.userid='5961051' and favorites.cataid in (    
 select * from t)    
 drop table t  

 

分享到:
评论

相关推荐

    SQLServer中临时表与表变量的区别

    资源名称:SQLServer中临时表与表变量的区别内容简介: 本文档主要讲述的是SQLServer中临时表与表变量的区别;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看。资源截图: 资源太大,传百度网盘了,...

    SQLServer中临时表与表变量的区别.docx

    ### SQL Server 中临时表与表变量的区别 #### 一、临时表 临时表与常规的永久表非常相似,主要区别在于其创建位置和生命周期。在SQL Server中,临时表是在`tempdb`数据库中创建的,这意味着它们仅在这个特定会话...

    sqlserver 循环临时表插入数据到另一张表

    sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...

    SQLServer中临时表与表变量的区别分析

    5. 锁管理:临时表使用SQL Server的锁定机制,表变量则不使用。 在选择使用临时表还是表变量时,应考虑数据量、操作复杂性、性能需求以及会话范围等因素。对于短期存储少量数据并需要索引或约束的情况,临时表可能...

    SQL SERVER临时表的使用.pdf

    SQL Server的临时表是数据库管理中非常实用的工具,它们被用于存储临时数据,供当前会话或多个会话在特定范围内使用。临时表有两种类型:本地临时表(以单个井号`#`开头)和全局临时表(以两个井号`##`开头)。 1. ...

    SQL Server遍历表中记录的2种方法(使用表变量和游标)

    表变量在SQL Server中是一种临时存储数据的结构,它与临时表相似但作用范围更小,仅限于当前批处理或存储过程。以下是一个使用表变量的例子: ```sql DECLARE @temp TABLE (id INT IDENTITY(1, 1), Name VARCHAR(10...

    SQL SERVER临时表的使用.docx

    与本地临时表不同,全局临时表在整个SQL Server实例中对所有会话可见。但是,它们的生命周期更为复杂,只有当创建它们的会话结束并且没有其他会话再引用它们时,全局临时表才会被自动删除。 临时表的一个常见用途是...

    SQL SERVER临时表的语法.docx

    下面将详细介绍这两种临时表的特性和使用方法。 1. 局部临时表(#开头) 局部临时表仅对创建它的会话(连接)可见,且在该会话结束时自动删除。这意味着,如果你在查询窗口中创建了一个名为 `#Tmp` 的临时表,只有...

    SQL SERVER临时表的语法.pdf

    SQL Server的临时表是数据库操作中非常实用的工具,它们用于存储临时数据,尤其是在复杂的查询...在实际应用中,根据数据量、生命周期和可见性需求,明智地选择临时表或表变量,可以显著提高SQL Server应用程序的性能。

    sql server 临时表 查找并删除的实现代码

    在SQL Server中,临时表是一种用于存储临时数据的结构,它们在特定的会话或所有会话中(根据类型)存在,并在不再需要时自动删除。临时表分为两种类型:本地临时表(以单个井号`#`开头)和全局临时表(以双井号`##`...

    SQL Server如何通过创建临时表遍历更新数据详解

    在SQL Server中,遍历和更新大量数据时,通常有两种主要方法:游标和使用临时表。本篇文章将重点探讨如何通过创建临时表来遍历并更新数据,以避免使用游标带来的性能损耗和复杂性。 首先,游标虽然直观,但其缺点...

    SQL Server 表变量和临时表的区别(详细补充篇)

    在SQL Server中,表变量和临时表都是用来存储数据的临时结构,但它们在使用上存在显著的区别。本文将详细探讨这两个概念。 首先,我们来看看表变量。表变量是在SQL Server 2000中引入的新特性,它允许在批处理语句...

    [sql server] SQL Server2005杂谈(1):使用公用表表达式(CTE)简化嵌套SQL

    本文将介绍 CTE 的基本概念、语法和使用方法,并与传统的子查询和表变量相比,看看 CTE 是如何简化嵌套 SQL 的。 一、嵌套 SQL 语句的问题 嵌套 SQL 语句是指在一个 SELECT 语句中包含另一个 SELECT 语句,这可以...

    sql临时表相关介绍

    5. **命名限制**:本地临时表的名称长度不能超过116个字符,因为SQL Server会在内部添加数字后缀以区分不同用户的表。 6. **存储位置**:所有的临时表都存储在tempdb系统数据库中。 7. **并发问题**:在多用户环境...

    sqlserver 临时表的用法

    临时表与表变量是SQL Server中的两个相似概念,但它们之间有显著的区别。表变量的作用范围仅限于当前批处理或存储过程,不支持索引,而临时表可以创建索引,更适合处理大量数据和复杂的查询场景。 在优化查询性能...

    sql server 生成交叉表

    该标题直接指出了文章的主要内容——在SQL Server环境中生成交叉表的方法。 #### 描述:SQL Server生成交叉表,可以用标准SQL生成类似交叉表效果 此描述进一步明确了目标是使用标准SQL语法来实现交叉表的功能,即...

    sqlserver的存储过程与 where in 多值参数

    本文将探讨在SQL Server中,存储过程与`WHERE IN`子句结合使用时,处理多值参数的几种方法。 **方法一:拼接SQL字符串并调用`EXEC`** 这是最简单也是最直观的方法。你可以在存储过程中接收一个包含多个值的参数,...

    SQL SERVER中表变量之妙用.pdf

    为了应对这些问题,SQL SERVER引入了表变量这种特殊的数据类型,它以其独特的性能和应用方式,在数据库编程中发挥了重要作用。 表变量是一种不写入磁盘的数据类型,它的执行速度非常快,而且在使用完毕后不需要进行...

Global site tag (gtag.js) - Google Analytics