欢迎来到天天文库
浏览记录
ID:45137902
大小:364.34 KB
页数:29页
时间:2019-11-10
《《事务与游标》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库实用教程——SQLServer2008第11章事务和游标本章学习目标:理解事务的概念掌握事务控制的使用理解游标的概念掌握游标的定义和使用方法11.1事务在SQLServer中,事务是完成一个应用处理的最小单元,由一个或多个对数据库操作的语句组成。事务作为一个完整的执行单元,如果执行成功,事务中进行的数据更新会全部提交;如果事务中有一个语句执行失败,则取消全部操作,并将数据库恢复到事务执行之前的状态。11.1.1事务概述在SQLServer中,事务作为单个逻辑工作单元来执行一系列操作,具有4个特
2、点(ACID属性):原子性、一致性、隔离性和持久性。原子性:事务必须是原子工作单元,事务中的操作要么全都执行,要么全都不执行。一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据都必须是正确的。隔离性:由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务操作数据时数据的状态,要么是另一个并发事务修改它之前的状态,要么是另一个事务修改它之后的状态,事务不会处理中间状态的数据。持久性:事务完成之
3、后,它对于系统的影响是永久性的。11.1.2自动提交事务自动提交模式是SQLServer数据库引擎的默认事务管理模式。每个Transact-SQL语句在完成时,都被提交或回滚。如果一个语句成功地完成,则提交该语句;如果遇到错误,则回滚该语句。只要没有显式事务或隐性事务覆盖自动提交模式,与数据库引擎实例的连接就以此默认模式操作。在与SQLServer连接之后,直接进入自动事务模式,直到使用BeginTransaction语句启动一个显式事务,或执行SetIMPLICIT_TRANSACTIONSOn语
4、句将隐式事务模式开启为止。当提交或回滚显式事务,或执行SetIMPLICIT_TRANSACTIONSOff关闭隐性事务模式时,连接又返回到自动提交模式。11.1.3显式事务显示事务是指由用户通过Transact-SQL事务语句定义的事务。常用的Transact-SQL事务语句有:BeginTransaction语句:标记一个本地事务的开始。CommitTransaction语句:标记一个显式事务或隐式事务的结束,表明事务已经成功执行,并将事务内所做的全部修改保存到数据库中。RollbackTran
5、saction:回滚显式事务或隐式事务到事务的起点或事务内部的保存点。SaveTransaction语句:在事务内部设置保存点,这个保存点是在取消事务的某一部分后,该事务可以返回的一个位置。1.BeginTransactionBeginTransaction语句定义一个本地显式事务的起点,并将全局变量@@TranCount的值加1,具体的语法格式如下:BeginTran
6、Transaction[transaction_name
7、@tran_name_variable]说明:transaction_n
8、ame:事务的名称。transaction_name必须符合标识符规则,但标识符所包含的字符数不能大于32。在一系列嵌套的事务中,用一个事务名或多个事务名对该事务并没有什么影响,系统仅登记第一个(最外层)事务名。@tran_name_variable:由用户定义的、含有有效事务名称的变量的名称。必须用char、varchar、nchar或nvarchar数据类型声明变量。如果传递给该变量的字符多于32个,则仅使用前面的32个字符,其余的字符将被截断。2.CommitTransactionCommit
9、Transaction语句标志一个事务成功执行的结束。如果全局变量@@TranCount的值为1,则CommitTransaction将提交从事务开始以来所执行的所有数据修改,释放事务处理所占用的资源,并使@@TranCount的值为0。如果@@TranCount的值大于1,则CommitTransaction命令将使@@TranCount的值减1,并且事务将保持活动状态。具体的语法为:CommitTran
10、Transaction[transaction_name
11、@tran_name_variab
12、le]说明:transaction_name:transaction_name指定由前面的BeginTransaction分配的事务名称。transaction_name必须符合标识符规则,但不能超过32个字符。transaction_name通过向程序员指明CommitTransaction与哪些BeginTransaction相关联,可作为帮助阅读的一种方法。@tran_name_variable:由用户定义的、含有有效事务名称的变量的名称。必须用char、var
此文档下载收益归作者所有