SQLServer事务和并发控制

SQLServer事务和并发控制

ID:38574494

大小:254.52 KB

页数:74页

时间:2019-06-15

SQLServer事务和并发控制_第1页
SQLServer事务和并发控制_第2页
SQLServer事务和并发控制_第3页
SQLServer事务和并发控制_第4页
SQLServer事务和并发控制_第5页
资源描述:

《SQLServer事务和并发控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、大型数据库系统管理、设计与实例分析——基于SQLServer唐善成通信学院tangshancheng@21cn.com第8章SQLServer事务和并发控制8.1事务8.2事务的分类和控制8.3并发控制8.4事务处理实例分析8.5分布式事务8.6并发控制8.1事务8.1.1事务的概念8.1.2事务对并发控制和保障数据完整的重要性8.1.1事务的概念事务是一个用户定义的完整的工作单元,一个事务内的所有语句被作为整体执行,要么全部执行,要么全部不执行。遇到错误时,可以回滚事务,取消事务内所做的所有改变,从而保证数据库中数据的一致性和可恢复性。1、事务的特性(ACID)原子

2、性(Atomicity):事务是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做。一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性(Isolation):一事务的执行不能被其它事务干扰。持续性(永久性)(Durability):指事务一旦提交,则其对数据库中数据的改变就应该是永久的2、事务和批的区别编程时,一定要区分事务和批的差别:批是一组整体编译的SQL语句,事务是一组作为单个逻辑工作单元执行的SQL语句。批语句的组合发生在编译时刻,事务中语句的组合发生在执行时刻。当在编译时,批中某个语句存在语法错误,

3、系统将取消整个批中所有语句执行,而在运行时刻,如果事务中某个数据修改违反约束、规则等,系统默认只回退到产生该错误的语句。如果批中产生一个运行时错误,系统默认只回退到产生该错误的语句。但当打开XACT_ABORT选项为ON时,可以系统自动回滚产生该错误的当前事务。一个事务中也可以拥有多个批,一个批里可以有多个SQL语句组成的事务,事务内批的多少不影响事务的提交或回滚操作。2、事务和批的区别SETXACT_ABORT指定当Transact-SQL语句产生运行时错误时,Microsoft®SQLServer™是否自动回滚当前事务。语法SETXACT_ABORT{ON

4、OFF

5、}当SETXACT_ABORT为ON时,如果Transact-SQL语句产生运行时错误,整个事务将终止并回滚。为OFF时,只回滚产生错误的Transact-SQL语句,而事务将继续进行处理。编译错误(如语法错误)不受SETXACT_ABORT的影响。对于大多数OLEDB提供程序(包括SQLServer),隐性或显式事务中的数据修改语句必须将XACT_ABORT设置为ON。唯一不需要该选项的情况是提供程序支持嵌套事务时。2、事务和批的区别下例导致在含有其它Transact-SQL语句的事务中发生违反外键错误。在第一个语句集中产生错误,但其它语句均成功执行且事务成功提交。

6、在第二个语句集中,SETXACT_ABORT设置为ON。这导致语句错误使批处理终止,并使事务回滚。CREATETABLEt1(aintPRIMARYKEY)CREATETABLEt2(aintREFERENCESt1(a))GOINSERTINTOt1VALUES(1)INSERTINTOt1VALUES(3)INSERTINTOt1VALUES(4)INSERTINTOt1VALUES(6)GOSETXACT_ABORTOFFGOBEGINTRANINSERTINTOt2VALUES(1)INSERTINTOt2VALUES(2)/*Foreignkeyerror*

7、/INSERTINTOt2VALUES(3)COMMITTRANGO2、事务和批的区别SETXACT_ABORTONGOBEGINTRANINSERTINTOt2VALUES(4)INSERTINTOt2VALUES(5)/*Foreignkeyerror*/INSERTINTOt2VALUES(6)COMMITTRANGO/*Selectshowsonlykeys1and3added.Key2insertfailedandwasrolledback,butXACT_ABORTwasOFFandrestoftransactionsucceeded.Key5insert

8、errorwithXACT_ABORTONcausedallofthesecondtransactiontorollback.*/SELECT*FROMt2GODROPTABLEt2DROPTABLEt1GO2、事务和批的区别问题:如何知道XACT_ABORT为ON还是OFF呢?XACT_ABORT的默认值是什么?2、事务和批的区别问题:如何知道XACT_ABORT为ON还是OFF呢?DBCCUSEROPTIONS:itwillshowassetifit'sON.Ifit'sOFFthenitwillnotshowDBCCUSEROPTIONS返回当

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。