SQL Server 数据库基础及应用-9_第1页
SQL Server 数据库基础及应用-9_第2页
SQL Server 数据库基础及应用-9_第3页
SQL Server 数据库基础及应用-9_第4页
SQL Server 数据库基础及应用-9_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9.1游标9.1.1游标基础在数据库开发过程中,执行SELECT语句返回的结果集包括了所有满足条件的数据行,但是在实际开发应用程序时,往往需要每次处理一行或一部分行,此时可以使用游标来实现。游标作为一种处理数据的方法,可以实现以下功能:1)在SELECT结果集中定位特定的数据行。2)查询SELECT结果集当前位置的数据行。3)修改SELECT结果集当前数据行的数据。SQLServer支持以下2类游标:下一页返回9.1游标1)TransacTtansact-SQL服务器游标。它通过脚本程序、存储过程和触发器将SQL语句传给服务器来实现控制和管理。2)数据库应用程序编程接口(API)游标函数。支持ADO,OLEDB,ODBC数据库API的游标功能。9.1.2游标的使用步骤应用程序对游标的使用可分为6个步骤:1.使用DECLARE声明和定义游标。2)使用OPEN语句打开游标。3)使用FETCH语句查询数据行。4)使用UPDATE或DELETE语句修改游标位置的数据行。5)使用CLOSE语句关闭游标。6)使用REALLOCATE语句释放游标。上一页下一页返回9.1游标1.声明和定义游标用DECLARE声明和定义游标,主要包括:游标的名字、数据来源表和列、选取条件与属性。语法格式为:2.打开游标如需从游标中读取数据,则必须打开游标。使用OPEN语句打开游标,该语句执行DECLARECURSOR语句中的SELECT语句。语法格式为:OPENcursorname上一页下一页返回9.1游标3.提取游标数据当游标被声明并成功打开后,就可以从游标中逐行提取数据。语法格式为4.修改游标位置数据行如果游标定义为可修改,那么定位在游标中的某个数据行时,可以执行修改或删除操作。修改或删除只针对在游标中建立当前行的基表,称为定位修改。5.关闭游标上一页下一页返回9.1游标

通过一个游标完成提取或更新记录行等数据操作后,必须关闭游标,以结束动态游标的操作并释放当前数据结果集,解除定位于数据记录行上的游标锁定。语法格式为:CLOSEcursorname7.释放游标游标关闭后,还要使用REALLOCATE语句从当前会话中删除对游标的引用,释放游标占用的数据结构。语法格式为:REALLOCATEcursor上一页下一页返回9.1游标7.游标函数游标函数使编程人员能够充分使用游标访问一个数据表中的记录。常用的处理游标的函数变量为9.1.3游标应用上一页返回9.2事务9.2.1事务基础多用户并发存取同一数据可能会产生数据的不一致性问题,使用事务可以有效地控制和避免这类问题。所谓事务(Transaction,是指一个操作序列,这些操作序列要么都被执行,要么都不被执行,它是一个不可分割的工作单元。事务中任何一个语句执行时出错,都必须取消或回滚该事务,即撤销该事务已做的所有动作,并且系统返回到事务开始前的状态。例如商场的一笔销售业务:商品被售出后,销售量增加,库存量减少,这两个操作必须同时成功,此业务才是成功完成,只要其中一个行为没有完成,该业务就是不成功的,并且数据应该恢复到没有进行任何操作之前的状态。下一页返回9.2事务

事务作为一个逻辑工作单元有4个属性:原子性、一致性、隔离性和持久性。1}原子性(Atomicity:事务必须是原子工作单元,对于数据修改,要么全都执行,要么全都不执行。2)一致性(Consistency):事务在完成时,必须使所有的数据都保持一致状态。当数据库只包含成功事务提交的结果时,就说明数据库处于一致状态。如果数据库系统运行过程中发生故障,有些事务未完成就被中断,那么系统会将事务中对数据库的所有已完成的操作全部撤销,并将其回滚到事务开始时的一致状态。3)隔离性(Isolation):由并发事务所做的修改必须与任何其他并发事务所做的修改隔离以保证事务查看数据时数据所处的状态,只能是另一并发事务修改它之前的状态或者是另一事务修改它之后的状态,而不能是查看中间状态的数据。4)持久性(Durability):如果事务正常结束,则它对数据库所做的修改将永久地保存。接下来的其他操作或故障不应该对其执行结果有任何影响,否则,在逻辑上等于任何操作都没做。上一页下一页返回9.2事务9.2.2事务操作在sQLServer中,对事务的管理是通过事务控制语句中的几个全局变量相结合来实现的。1.事务控制语句1)使用BEGINTRANSACTION}trayname」定义一个事务的开始。2)使用COMMITTRANSACTION}tran_name」提交一个事务中的操作,并结束一个用户定义的事务,使得对数据库的改变生效。3)使用ROLLBACKTRANSACTION回滚事务。BEGINTRANSACTION表示一个事务的开始,每个事务将继续执行到用COMMITTRANSAC-TION提交,从而正确地完成对数据库所做的永久性修改,或者出现错误后由ROLLBACKTRANS-ACTION语句撤销所有修改。上一页下一页返回9.2事务公用于事务管理的全局变量1)@@error:给出最近一次执行的错

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论