《游标和事务》PPT课件

上传人:lisu****2020 文档编号:244781357 上传时间:2024-10-06 格式:PPT 页数:22 大小:329.47KB
返回 下载 相关 举报
《游标和事务》PPT课件_第1页
第1页 / 共22页
《游标和事务》PPT课件_第2页
第2页 / 共22页
《游标和事务》PPT课件_第3页
第3页 / 共22页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第8章 游标和事务,上一页,下一页,返 回,第8章 游标和事务,学习要点:,游标的定义和使用方法,事务的定义、操作以及具体应用,8.1,游标,8.2,事务,开 始,8.1,游标,游标是一种数据结构。通过这种结构,程序可以将查询结果保存在其中,并可对其中某行(或某些行)的数据进行操作。游标中的数据保存在内存中,从其中提取数据的速度要比从数据表中直接提取数据的速度要快得多,。,8.1.1,游标的定义及优点,1,游标的定义,SELECT,语句返回的所有行的集合均作为一个整体处理,而无法对其中的一行或部分行做单独处理。而在实际开发中,尤其是在交互应用程序设计中,人们常常需要对,SELECT,语句所返回结果集合中的不同行做不同处理。游标正是这样一种方法,它能够部分读取返回结果集合中的数据行,并允许应用程序通过游标定位修改表中数据。,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_name 必须遵从标识符规则。,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:指出游标的结果集是可以被修改的。如果指定 OF column_name,.n 参数,则只允许修改所列出的列。如果在 UPDATE 中未指定列的列表,则可以更新所有列。,例8-1 定义一个游标,其数据为表salers中的全部数据,DECLARE myCursor CURSOR,For select*from Salers,2打开游标,OPEN cursor_name,cursor_name,是已声明过的并且没有打开的游标名称。,打开游标后,可以从全局变量CURSOR_ROWS中读取游标结果集合中的行数。,3,从打开的游标中提取数据,FETCH NEXT|PRIOR|FIRST|LAST|ABSOLUTE n|RELATIVE 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 为正数,则提取所上次提取行之后的第,n,行。如果,n,为负数,则提取上次所提取行之前的第,n,行。如果,n,为 0,则同一行被再次提取。,cursor_name:要从中进行提取的游标的名称。,INTO variable_name,.n:允许将提取操作的列数据放到局部变量中。,注意:,FETCH语句每次只能提取一行数据。因为Transact-SQL游标不支持块(多行)提取操作。,FETCH语句的执行状态保存在全局变量FETCH_STATUS中,该变量有三种取值:,当取值为0时,说明FETCH语句执行成功。,当取值为-1时,说明FETCH 语句失败或此行不在结果 集中。,当取值为,-2,时,说明被提取的行不存在。,4关闭游标,当提取完游标结果集中的数据时,应及时调用,CLOSE,语句关闭游标,以便释放游标所占用的系统资源。,CLOSE cursor_name,cursor_name,是要被关闭的游标名。,5释放(删除)游标,由于关闭游标时并没有删除游标,因此,游标仍然占用着系统资源。则将其关闭后,还需要使用,DEALLOCATE,语句来释放游标所占用的系统资源。,DEALLOCATE cursor_name,8.1.3,使用游标修改数据,UPDATE,语句和,DELETE,语句也支持游标操作,它们可以通过游标修改或删除游标基表中的当前数据行。这样,就可以通过游标更新和删除数据表中的数据。,UPDATE table_name,SET,子句,WHERE CURRENT OF cursor_name,table_name,:为需要修改的数据表名。,cursor_name,:为游标名。,例如:,Update Salers,Set sex=女,Where CURRENT OF myCursor,将游标“,myCursor,”中当前行中的“,sex,”列的值修改为“女”。,DELETE FROM table_name,WHERE CURRENT OF cursor_name,table_name:为需要修改的数据表名。,cursor_name:为游标名。,例如:,DELETE FROM Salers,Where CURRENT OF myCursor,将游标“myCursor”中当前行中删除。,8.2,事务,8.2.1,什么是事务,事务(Transaction)是SQL Server 中的单个逻辑工作单元,一个事务内的所有语句被作为一个整体执行。在事务执行过程中,如果遇到错误,则可以回滚事务,取消该事务所做的全部改变,从而保证数据库的一致性和可恢复性。也就是说,一个事务要么其中的语句全部正确执行,要么全部语句不起作用。,事务作为一个逻辑工作单元必须有四个属性,称为,ACID,(原子性、一致性、隔离性和持久性)属性。,原子性,:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。,一致性,:事务在完成时,必须使所有的数据都保持一致状态。,隔离性,:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。,持久性,:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。,在SQL Server 中,系统将事务模式分为,显式事务、隐式事务和自动事务,三种,。,1显示事务,显示事务是指由用户通过Transace-SQL 事务语句而定义的事务。这类事务又称为用户定义事务。,(1)BEGIN TRANSACTION,标记一个显式本地事务的起始点。,(2)COMMIT TRANSACTION,标志一个成功的显示事务或隐性事务的结束。,(3)ROLLBACK TRANSACTION,将显式事务或隐式事务回滚到事务的起点或事务内 的某个保存点。,(4)SAVE 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,又进入自动事务管理模式。,小结:,本章介绍了游标定义、填充游标、关闭游标、删除游标、应用游标、数据更新和删除操作等内容,还有事务的定义、操作以及具体应用。,下一章,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!