最近使用Db的机会比较多,现做了一些小总结:
i。临时表
临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。
临时表有局部和全局两种类型
2者比较:
局部临时表的名称以符号 (#) 打头
仅对当前的用户连接是可见的
当用户实例断开连接时被自动删除
全局临时表的名称以符号 (##) 打头
任何用户都是可见的
当所有引用该表的用户断开连接时被自动删除
实际上局部临时表在tempdb中是有唯一名称的
例如我们用sa登陆一个查询分析器,再用sa登陆另一查询分析器
在2个查询分析器我们都允许下面的语句:
use pubs
go
select * into #tem from jobs
分别为2个用户创建了2个局部临时表
我们可以从下面的查询语句可以看到
SELECT *
FROM [tempdb].[dbo].[sysobjects]
where xtype='u'
判断临时表的存在性:
if object_id('tempdb..#tem') is not null
begin
print 'exists'
end
else
begin
print 'not exists'
end
特别提示:
1。在动态sql语句中创建的局部临时表,在语句运行完毕后就自动删除了
所以下面的语句是得不到结果集的
exec('select * into #tems from jobs')
select * from #tems
2。在存储过程中用到的临时表在过程运行完毕后会自动删除
但是推荐显式删除,这样有利于系统
ii。游标
游标也有局部和全局两种类型
局部游标:只在声明阶段使用
全局游标:可以在声明它们的过程,触发器外部使用
判断存在性:
if CURSOR_STATUS('global','游标名称') =-3 and CURSOR_STATUS('local','游标名称') =-3
begin
print 'not exists'
end
希望上面提到的知识对你有所提示
当然欢迎交流和指正
blog:
http://www.cnblogs.com/aierong
author:aierong
email:aierong@126.com
分享到:
相关推荐
总的来说,临时表和游标是数据库操作中的重要工具,理解和掌握它们的使用可以帮助我们在处理复杂数据问题时更加得心应手。在实际应用中,应根据需求选择合适类型的临时表和游标,并注意它们的生命周期管理,以优化...
深入详解触发器的工作原理和案例,深入讲解本地临时表和全局临时表的区别,讲解游标的使用
总结来说,临时表和游标在Sql Server中是重要的工具,它们各自有其特定的应用场景。临时表用于临时存储和管理数据,而游标则用于逐行处理数据。在实际应用中,应根据具体需求选择合适的方法,并注意管理和优化以提高...
SQL中的触发器是一种特殊...总的来说,这个PPT学习教案涵盖了SQL中的关键概念,包括触发器、存储过程、临时表和游标,这些都是数据库管理和开发的重要组成部分,对于理解SQL的高级功能和实现复杂的业务逻辑至关重要。
游标可以看作是一个临时表,你可以对其每一行的数据进行任意的操作。本文将对 Oracle 游标的概念、分类、声明方式、属性和应用进行详细的介绍。 一、游标的概念 游标是 Oracle 数据库中的一种机制,用于查询数据库...
本文将深入探讨三种有效的游标替代方案:使用`MIN()`和`MAX()`函数、使用表函数以及使用临时表。 ### 使用`MIN()`和`MAX()`函数 `MIN()`和`MAX()`是SQL中的聚合函数,分别用于返回一列中的最小值和最大值。在游标...
关于存储过程和游标的总结 本文主要介绍了游标的概念、类型、状态和使用方法,以及存储过程的相关知识。 一、游标的概念 游标是一种机制,允许应用程序逐行处理结果集,而不是处理整个结果集。游标是通过游标库来...
本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...
Oracle 游标使用大全 Oracle 游标是 PL/SQL 中的一种重要的数据访问机制,通过游标,可以高效地访问和处理数据库中的数据。在本文中,我们将对 Oracle 游标的使用进行详细的介绍,包括游标的基本概念、游标的类型、...
在数据插入到临时表后,我们可以使用游标来查询数据。在本例中,我们使用了一个名为 `@Cursor_Return` 的游标参数,用于返回生成的游标。 技术要点 在创建和使用动态游标时,需要注意以下技术要点: * 使用参数来...
-- 声明临时表来存储结果 DECLARE @temp TABLE ( productID int, productName nvarchar(30), clickNum int ); -- 声明游标并打开 DECLARE cursor_classID CURSOR FOR SELECT classID FROM dbo.className; OPEN ...
表变量在SQL Server中是一种临时存储数据的结构,它与临时表相似但作用范围更小,仅限于当前批处理或存储过程。以下是一个使用表变量的例子: ```sql DECLARE @temp TABLE (id INT IDENTITY(1, 1), Name VARCHAR(10...
* INSENSITIVE:定义一个游标,以创建将由该游标使用的数据的临时复本。 * SCROLL:指定所有的提取选项(FIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOLUTE)均可用。 * select_statement:定义游标结果集的标准 SELECT...
本存储过程的目的是利用游标和临时表来实现动态查询,主要用于查询监测设备的状态及目标监测设备状态。下面我们将深入探讨存储过程的使用优势、游标的概念和使用步骤,以及在MySQL中如何实现游标。 1. 存储过程的...
2. 使用隐式游标的属性来判断操作的状态和结果。 3. 根据操作的结果,执行相应的操作,例如 COMMIT 或 ROLLBACK。 在实际应用中,隐式游标非常有用,可以自动地处理多种操作,例如 INSERT、UPDATE 和 DELETE 等。...
在存储过程中,定义一个游标 test,使用 SELECT 语句从 product 表中提取数据,group by pro_name,统计每种产品的销售数量、平均价格和总价。然后,使用 FETCH 语句从游标中提取每一行记录,并使用 dbms_output.put...
在提供的示例中,游标名为`appeal_num_cursor`,用于处理`#iptv_guang`临时表中的数据。声明游标使用`DECLARE CURSOR`语句,如下所示: ```sql DECLARE appeal_num_cursor CURSOR FOR SELECT serial_112, dir_num,...
下面将详细介绍一种不使用游标实现循环的方法:基于带有标识列的临时表。 首先,我们创建一个带有标识列(ID)的临时表,这个标识列在插入数据时自动递增,使得我们可以按顺序访问每一行。在创建临时表时,我们通常...
本资源结合实例实现一个复杂的存储过程,存储过程中有用到游标、临时表、循环、递归等知识,sql文件附有实例数据表创建的sql语句。