第8章游标、事务和锁.ppt
《第8章游标、事务和锁.ppt》由会员分享,可在线阅读,更多相关《第8章游标、事务和锁.ppt(51页珍藏版)》请在优知文库上搜索。
1、2023-11-161第第8章章 游标、事务和锁游标、事务和锁22023-11-16第第8 8章章 游标、事务和锁游标、事务和锁游标游标1事务事务2锁锁3本章小结本章小结 432023-11-168.1 游标 8.1.1 游标的定义及优点游标的定义及优点1游标的定义游标能够部分读取返回结果集合中的数据行,并允许应用程序通过游标来定位修改表中数据。2游标的优点 允许定位在结果集的特定行。从结果集的当前位置检索一行或一部分行。支持对结果集中当前位置的行进行数据修改。为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。提供脚本、存储过程和触发器中用于访问结果集中的数据的 Tr
2、ansact-SQL 语句。42023-11-16 8.1.2 游标的用法游标的用法(1)声明游标(DECLARE CURSOR)(2)打开游标(OPEN CURSOR)(3)提取游标(FETCH CURSOR)(4)根据需要,对游标中当前位置的行执行修改操作(更新或删除)(5)关闭游标(CLOSE CURSOR)(6)释放游标(DEALLOCATE CURSOR)52023-11-161声明游标(声明游标(DECLARE CURSOR)可以使用可以使用DECLARE 语句声明或创建一个游标。语法格式如语句声明或创建一个游标。语法格式如下:下:DECLARE cursor_name CURSO
3、R LOCAL|GLOBAL FORWARD_ONLY|SCROLL STATIC|KEYSET|DYNAMIC|FAST_FORWARD READ_ONLY|SCROLL_LOCKS|OPTIMISTIC FOR select_statement FOR UPDATE OF column_name ,.n ;62023-11-162打开游标(打开游标(OPEN CURSOR)可以使用可以使用OPEN语句打开声明过的游标。语法格式语句打开声明过的游标。语法格式如下:如下:OPEN cursor_name 其中,其中,cursor_name 是已声明过的并且没有打开的是已声明过的并且没有打开的游
4、标名称。游标名称。72023-11-163从打开的游标中提取数据(从打开的游标中提取数据(FETCH CURSOR)可以使用可以使用FETCH语句来提取数据。语法格式如下:语句来提取数据。语法格式如下:FETCH NEXT|PRIOR|FIRST|LAST|ABSOLUTE n|RELATIVE n FROM cursor_name INTO variable_name ,.n 82023-11-164关闭游标(关闭游标(CLOSE CURSOR)当不再使用游标时,应及时调用当不再使用游标时,应及时调用CLOSE语句关闭游标,以语句关闭游标,以便释放游标所占用的系统资源。在关闭游标时,便释放游
5、标所占用的系统资源。在关闭游标时,SQL Server删除游标中的所有数据,并释放游标对数据库的所删除游标中的所有数据,并释放游标对数据库的所有锁定。所以,在游标关闭后,禁止提取游标数据,或有锁定。所以,在游标关闭后,禁止提取游标数据,或通过游标进行定位修改或删除操作。但是,关闭游标并通过游标进行定位修改或删除操作。但是,关闭游标并不改变游标的定义,应用程序可以再次执行不改变游标的定义,应用程序可以再次执行OPEN语句打语句打开游标。开游标。可以使用可以使用CLOSE关闭游标。语法格式如下:关闭游标。语法格式如下:CLOSE cursor_name 其中,其中,cursor_name 是要被关
6、闭的游标名。是要被关闭的游标名。92023-11-165释放(删除)游标(释放(删除)游标(DEALLOCATE CURSOR)由于关闭游标时并没有删除游标,因此,游标仍然由于关闭游标时并没有删除游标,因此,游标仍然占用着一定的系统资源。如果一个游标确定不再占用着一定的系统资源。如果一个游标确定不再使用,将其关闭后,还需要使用使用,将其关闭后,还需要使用DEALLOCATE语句来删除游标。语法格式如下:语句来删除游标。语法格式如下:DEALLOCATE cursor_name 其中,其中,cursor_name 是已声明的游标名称。是已声明的游标名称。102023-11-16 8.1.3 使用
7、游标修改数据使用游标修改数据 在SQL Server 中,UPDATE语句和DELETE语句也支持游标操作,它们可以通过游标修改或删除游标基表中的当前数据行。这样,就可以通过游标更新和删除数据表中的数据。用于游标操作时,UPDATE语句的语法格式如下:UPDATE table_nameSET column_name=expressionWHERE CURRENT OF cursor_name112023-11-168.2 事务 8.2.1 什么是事务什么是事务事务(transaction)是SQL Server 中的单个逻辑工作单元,也是一个操作序列,它包含了一组数据库操作命令。一个事务内的所
8、有语句被作为一个整体执行。在事务执行过程中,如果遇到错误,则可以回滚事务,取消该事务所做的全部改变,从而保证数据库的一致性和完整性。因此,事务是一个不可分割的工作逻辑单元,一个事务中的语句要么全部正确执行,要么全部不起作用。事务作为一个逻辑工作单元必须具有四个属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这四个属性简称ACID属性。122023-11-161显示事务显示事务显示事务就是可以显式地定义事务的开始和结束的事务,这类事务又称显示事务就是可以显式地定义事务的开始和结束的事务,这类事务又称为用户定义事务
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 游标 事务
