《游标和事务》PPT课件.ppt

上传人:牧羊曲112 文档编号:5548584 上传时间:2023-07-19 格式:PPT 页数:22 大小:329.47KB
返回 下载 相关 举报
《游标和事务》PPT课件.ppt_第1页
第1页 / 共22页
《游标和事务》PPT课件.ppt_第2页
第2页 / 共22页
《游标和事务》PPT课件.ppt_第3页
第3页 / 共22页
《游标和事务》PPT课件.ppt_第4页
第4页 / 共22页
《游标和事务》PPT课件.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《《游标和事务》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《游标和事务》PPT课件.ppt(22页珍藏版)》请在三一办公上搜索。

1、第8章 游标和事务,学习要点:游标的定义和使用方法 事务的定义、操作以及具体应用 8.1 游标8.2 事务,开 始,8.1 游标,游标是一种数据结构。通过这种结构,程序可以将查询结果保存在其中,并可对其中某行(或某些行)的数据进行操作。游标中的数据保存在内存中,从其中提取数据的速度要比从数据表中直接提取数据的速度要快得多。,8.1.1 游标的定义及优点 1游标的定义 SELECT 语句返回的所有行的集合均作为一个整体处理,而无法对其中的一行或部分行做单独处理。而在实际开发中,尤其是在交互应用程序设计中,人们常常需要对SELECT语句所返回结果集合中的不同行做不同处理。游标正是这样一种方法,它能

2、够部分读取返回结果集合中的数据行,并允许应用程序通过游标定位修改表中数据。,2游标的优点 游标的主要好处是可以逐行的处理数据。通过游标允许程序对由select产生的结果集的每一行执行相同或不同的操作;允许从结果集中检索指定的行;允许结果集中的当前行被修改;允许被其它用户修改的数据在结果集中是可见的。,8.1.2 游标的用法 1声明游标 语法形式如下:DECLARE cursor_name SCROLL CURSOR FOR select_statement FOR READ ONLY|UPDATE OF column_name,.n cursor_name:是所定义的游标名称。cursor_n

3、ame 必须遵从标识符规则。,SCROLL指定所有的提取选项(FIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOLUTE)均可用。如果在 DECLARE CURSOR 中未指定 SCROLL,则 NEXT 是唯一支持的提取选项。,select_statement:是定义游标结果集的标准 SELECT 语句。在游标声明的 select_statement内不允许使用关键字 COMPUTE、COMPUTE BY、FOR BROWSE 和INTO。FOR READ ONLY:指出游标的结果集是只读的,不能修改。FOR UPDATEOF column_name,.n:指出游标的结果

4、集是可以被修改的。如果指定 OF column_name,.n 参数,则只允许修改所列出的列。如果在 UPDATE 中未指定列的列表,则可以更新所有列。,例8-1 定义一个游标,其数据为表salers中的全部数据DECLARE myCursor CURSORFor select*from Salers2打开游标 OPEN cursor_name cursor_name 是已声明过的并且没有打开的游标名称。打开游标后,可以从全局变量CURSOR_ROWS中读取游标结果集合中的行数。,3从打开的游标中提取数据 FETCH NEXT|PRIOR|FIRST|LAST|ABSOLUTE n|RELAT

5、IVE n FROM cursor_name INTO variable_name,.n NEXT:提取上次提取行之后的行,即向下移动。如果 FETCH NEXT 为对游标的第一次提取操作,则返回结果集中的第一行。NEXT 为默认的游标提取选项。PRIOR:提取上次提取行之前的行。如果 FETCH PRIOR 为对游标的第一次提取操作,则没有行返回并且游标置于第一行之前。,LAST:提取游标中的最后一行并将其作为当前行。ABSOLUTE n:如果 n 为正数,则提取游标中从第 1 行开始的第 n 行。如果 n 为负整数,则提取游标中的倒数第 n 行。RELATIVE n:如果 n 为正数,则提

6、取所上次提取行之后的第 n 行。如果 n 为负数,则提取上次所提取行之前的第 n 行。如果 n 为 0,则同一行被再次提取。cursor_name:要从中进行提取的游标的名称。INTO variable_name,.n:允许将提取操作的列数据放到局部变量中。,注意:FETCH语句每次只能提取一行数据。因为Transact-SQL游标不支持块(多行)提取操作。FETCH语句的执行状态保存在全局变量FETCH_STATUS中,该变量有三种取值:当取值为0时,说明FETCH语句执行成功。当取值为-1时,说明FETCH 语句失败或此行不在结果 集中。当取值为-2时,说明被提取的行不存在。,4关闭游标

7、当提取完游标结果集中的数据时,应及时调用CLOSE语句关闭游标,以便释放游标所占用的系统资源。CLOSE cursor_name cursor_name 是要被关闭的游标名。5释放(删除)游标由于关闭游标时并没有删除游标,因此,游标仍然占用着系统资源。则将其关闭后,还需要使用DEALLOCATE语句来释放游标所占用的系统资源。DEALLOCATE cursor_name,8.1.3 使用游标修改数据 UPDATE语句和DELETE语句也支持游标操作,它们可以通过游标修改或删除游标基表中的当前数据行。这样,就可以通过游标更新和删除数据表中的数据。,UPDATE table_nameSET 子句W

8、HERE CURRENT OF cursor_name table_name:为需要修改的数据表名。cursor_name:为游标名。例如:Update SalersSet sex=女Where CURRENT OF myCursor将游标“myCursor”中当前行中的“sex”列的值修改为“女”。,DELETE FROM table_nameWHERE CURRENT OF cursor_name table_name:为需要修改的数据表名。cursor_name:为游标名。例如:DELETE FROM SalersWhere CURRENT OF myCursor将游标“myCursor

9、”中当前行中删除。,8.2 事务,8.2.1 什么是事务 事务(Transaction)是SQL Server 中的单个逻辑工作单元,一个事务内的所有语句被作为一个整体执行。在事务执行过程中,如果遇到错误,则可以回滚事务,取消该事务所做的全部改变,从而保证数据库的一致性和可恢复性。也就是说,一个事务要么其中的语句全部正确执行,要么全部语句不起作用。,事务作为一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性。原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。一致性:事务在完成时,必须使所有的数据都保持一致状态。隔离性:由并发事务所作

10、的修改必须与任何其它并发事务所作的修改隔离。持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。,在SQL Server 中,系统将事务模式分为显式事务、隐式事务和自动事务三种。1显示事务 显示事务是指由用户通过Transace-SQL 事务语句而定义的事务。这类事务又称为用户定义事务。(1)BEGIN TRANSACTION 标记一个显式本地事务的起始点。(2)COMMIT TRANSACTION 标志一个成功的显示事务或隐性事务的结束。,(3)ROLLBACK TRANSACTION 将显式事务或隐式事务回滚到事务的起点或事务内 的某个保存点。(4)SAV

11、E TRANSACTION 将显式事务回滚到事务的起点。,2隐式事务隐式事务是指在当前事务提交或回滚后,SQL Server 自动开始的事务。隐式事务不需要使用BEGIN TRANSACTION语句标识事务的开始,而只需要用户使用ROLLBACK TRANSACTION、COMMTT TRANSACTION 等语句回滚事务或结束事务。在回滚时候,SQL Server又自动开始一个新的事务。,3自动事务自动事务是一种能够自动执行并能自动回滚的事务。在自动事务模式下,当一个语句成功执行后,它被自动提交,而当它执行过程中产生错误则自动回滚。自动事务模式是SQL Server的默认事务管理模式,当与SQL Server建立连接后,直接进入自动事务模式,直到使用BEGIN TRANSCTION语句开始一个显示事务,或者执行SET IMPLICT_TRANSACTIONS ON语句进入隐式事务模式为止。但当显示事务被提交或回滚,或者执行SET IMPLICIT_TRANSACTIONS OFF语句后,SQL Server 又进入自动事务管理模式。,小结:本章介绍了游标定义、填充游标、关闭游标、删除游标、应用游标、数据更新和删除操作等内容,还有事务的定义、操作以及具体应用。,下一章,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号