第10讲事务与游标编程.ppt

上传人:本田雅阁 文档编号:3122607 上传时间:2019-07-13 格式:PPT 页数:18 大小:329.52KB
返回 下载 相关 举报
第10讲事务与游标编程.ppt_第1页
第1页 / 共18页
第10讲事务与游标编程.ppt_第2页
第2页 / 共18页
第10讲事务与游标编程.ppt_第3页
第3页 / 共18页
第10讲事务与游标编程.ppt_第4页
第4页 / 共18页
第10讲事务与游标编程.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《第10讲事务与游标编程.ppt》由会员分享,可在线阅读,更多相关《第10讲事务与游标编程.ppt(18页珍藏版)》请在三一文库上搜索。

1、第10讲 事务与游标编程,问题,问题 在银行等重要交易中,要使一组SQL语句同时执行或撤消,如何做? 要对查询结果进行一行行的操作,如何做到?,事务概述,事务是作为单个逻辑工作单元执行的一系列操作。 思考:事务和批处理的区别? 事务的属性(ACID) 原子性:原子工作单元 一致性:保证数据的一致性 隔离性:并发事务之间所做的修改要隔离 并发操作:几个用户程序同时读写一个数据的情况 持久性:对系统的影响要持久,简单事务编程,格式: BEGIN TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION 【问题】简单的事务提交和回滚 说明:如果没有明确给

2、出BEGIN TRANSACTION语句,则SQL Server是将每个SQL语句都当成一个事务进行执行,事务的嵌套,嵌套事务只有在提交了最外层的事务后,数据才执行永久修改 嵌套事务时,ROLLBACK语句只能将所有内层事务回滚到最外层的BEGIN TRANSACTION语句,封锁,利用封锁技术可以有效地保证数据的一致性 封锁粒度:可以锁定在行、列、表、数据库等不同的单元上 SQL Server具有自动和强制封锁的功能,锁模式,锁模式: 共享锁(Share Lock) 排他锁(Exclusive Lock) 更新锁(Update Lock) 各种锁模式的兼容性:,死锁,当两个事务trans1和

3、trans2在下列的状态时,将产生死锁: Trans1:存取数据项X和Y Trans2:存取数据项Y和X 【说明】如果事务Trans1封锁了数据项X,事务Trans2封锁了数据项Y,则Trans1等待Trans2释放Y上的锁,Trans2等待Trans1释放X上的锁。因此,Trans1和Trans2都无限地等待对方打开锁住的数据项,则产生死锁。,死锁(续),【死锁示例】 说明: SQL Server能自动发现并解除死锁 避免死锁的措施:P.237,游标引例,以前:使用SELECT语句对表格进行查询,返回的结果集包括所有满足条件的行。 思考:如果要求每次只显示表格(例如上面的Course表)中的

4、一行,该如何处理?这在将T-SQL嵌入到其他高级语言(如C、VC、Delphi等)的编程中经常用到。,游标概述,可以将游标看作一种特殊的指针,它可以指向与它相关联的结果集中的任意一行,以便对当前位置的行进行处理。 游标提供了对一个结果集进行逐行处理的能力: 在结果集中定位特定行 从结果集的当前位置检索行 支持对结果集中当前位置的行进行数据处理(修改/删除),使用游标的步骤,声明游标 打开游标 处理数据(读取/修改/删除)可以和其他T-SQL语句配合灵活使用 关闭游标(与打开游标配对) 删除游标(与声明游标配对,此时释放分配给游标的所有资源) 【问题】游标基本使用的例子,相关语法格式,声明游标

5、DECLARE cursor_name CURSOR FORWORD_ONLY|SCROLL FOR select_statements 打开游标 OPEN cursor_name 使用游标 FETCH NEXT|PRIOR|FIRST|LAST FROM cursor Into variable_name 关闭游标 CLOSE cursor_name 删除游标 DEALLOCATION cursor_name,练习1,声明一个名为CrsStudent的游标,使其与“00电子商务班”的所有学生信息(学号、姓名)相关联,并逐行显示前三条学生信息,如果遍历整个结果集?,使用fetch_status: 该全局变量/配置函数返回被最后FETCH语句执行的游标的状态,返回类型为int: 0:FETCH语句成功 1:FETCH语句失败或此行不在结果集中 2:被提取的行不存在,练习2,使用游标遍历Course表,输出报名人数最多的课程的信息(课程编码、课程名称、报名人数),练习3,建立一个存储过程,利用游标求course表中某系(用户给定系代码)所开课程的最大报名人数,并把课程名称和最大报名人数作为输出变量返回给用户。,本章小结,事务掌握 锁了解 重点: 掌握事务和游标的使用步骤、方法,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1