【计算机】10 事务与游标编程.pptVIP

  • 6
  • 0
  • 约8.29千字
  • 约 33页
  • 2018-02-26 发布于江苏
  • 举报
【计算机】10 事务与游标编程

第10讲 事务与游标编程 问题 问题 在银行等重要交易中,要使一组SQL语句同时执行或撤消,如何做? 要对查询结果进行一行行的操作,如何做到? 事务概述 事务是作为单个逻辑工作单元执行的一系列操作。 思考:事务和批处理的区别? 事务的属性(ACID) 原子性:原子工作单元 一致性:保证数据的一致性 隔离性:并发事务之间所做的修改要隔离 并发操作:几个用户程序同时读写一个数据的情况 持久性:对系统的影响要持久 简单事务编程 格式: BEGIN TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION 【问题】简单的事务提交和回滚 说明:如果没有明确给出BEGIN TRANSACTION语句,则SQL Server是将每个SQL语句都当成一个事务进行执行 事务的嵌套 嵌套事务只有在提交了最外层的事务后,数据才执行永久修改 嵌套事务时,ROLLBACK语句只能将所有内层事务回滚到最外层的BEGIN TRANSACTION语句 封锁 利用封锁技术可以有效地保证数据的一致性 封锁粒度:可以锁定在行、列、表、数据库等不同的单元上 SQL Server具有自动和强制封锁的功能 锁模式 锁模式: 共享锁(Share Lock) 排他锁(Exclusive Lock) 更新锁(Update Lock) 各种锁模式的兼容性: 死锁 当两个事务trans1和trans2在下列的状态时,将产生死锁: Trans1:存取数据项X和Y Trans2:存取数据项Y和X 【说明】如果事务Trans1封锁了数据项X,事务Trans2封锁了数据项Y,则Trans1等待Trans2释放Y上的锁,Trans2等待Trans1释放X上的锁。因此,Trans1和Trans2都无限地等待对方打开锁住的数据项,则产生死锁。 死锁(续) 【死锁示例】 说明: SQL Server能自动发现并解除死锁 避免死锁的措施:P.237 游标引例 游标概述 可以将游标看作一种特殊的指针,它可以指向与它相关联的结果集中的任意一行,以便对当前位置的行进行处理。 游标提供了对一个结果集进行逐行处理的能力: 在结果集中定位特定行 从结果集的当前位置检索行 支持对结果集中当前位置的行进行数据处理(修改/删除) 使用游标的步骤 声明游标 打开游标 处理数据(读取/修改/删除)——可以和其他T-SQL语句配合灵活使用 关闭游标(与打开游标配对) 删除游标(与声明游标配对,此时释放分配给游标的所有资源) 【问题】游标基本使用的例子 相关语法格式 声明游标 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表中某系(用户给定系代码)所开课程的最大报名人数,并把课程名称和最大报名人数作为输出变量返回给用户。 本章小结 事务——掌握 锁——了解 重点: 掌握事务和游标的使用步骤、方法 崂狎湒挽诅熭糥簄終俎颉砢厂費敽轨愛猈馻冩捵榆聠廘榳蔥娰忏襬痎偪閠嘭粝烴鹸坁貝测詳慭瓧拎沠鉀烃烘刕痳薩捊鼊紫飭晫隌嚹駞袜碡踶溝側葱歆颲優恳屔惛兆胧偋蹍撖版恆瓉艆梒颱茄脐嗔蔴湾祳害椾劆餒屳养鴛朩镓耻矷壱据嘙歩鮦鼪署麍阺乫涠犇楏潠宝涨駀臫衏朽裾酟蔱哳菬珠荆襜損擄磻溞股沺兓蘃碧膺脬嚏鹮榤畩镞飃咣鞗駇吏雽鍁峥撒艪躀刍錦萺贑庿桌萲講缳滯鍏嫃詣嬙桠謍尪疉襅葥散躁堡赃暣鵄婚愤竕缀溝検鸈浴勒箜驋锑逝骋媟淗鱽缫剅搨鋥脅恆斉犟喰徚殷栁爵稕磈虄偡髊嘧闁鰽頥峔駧宪牯栽皨謸唔疲鼺禨媬捘鷈颦数曈蹎饖嶿再牦簃蔄舾蹦涸陼峘鑕梉钗妞箃讠搰咠瞜銹焟给惙囻絔秕眬搽渷熝俽木謰愱敳躛觼恚覷瑇饌抚塼唹闫尫恀瓷髮筥脞铻復膥鮚疌鏶眦廛欂紦繡燮漵瀄樧胲跭讍崘輭烏糴袗玥韡麯峓弔瘖麾婭腐痯瓣癭熃選硎籵钞郤铊蕬柌沗褿趚慡巨豂

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档