- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库系统sy09
CH9 事务与锁;一、事务和数据一致性约束;2 、数据一致性约束问题;用户A 丢失修改;用户A在t2把x增加30(尚未写入数据库),用户
B在t3由数据缓存读出x=70。但用户A在t4时
撒消(Undo)了对x的修改,数据库中仍维持
x=40。但用户B已把“脏”数据(x=70)取走;不可重复读(用户A); 在SQL Server中,通常事务是指以begin transaction开始,到rollback或一个相匹配的commit之间的所有语句序列。
rollback表示要撒消(undo)该事务已做的一切操作,回滚到事务开始的状态。
commit表示提交事务中的一切操作,使得对数据库的改变生效。; 对事务的管理是通过事务控制语句来实现的。
在SQL Server中主要有以下四种控制语句。
1. begin tran[saction] [tran_name]
标识一个用户定义的事务的开始。
2. commit tran[saction] [tran_name]
结束一个用户定义的事务。保证对数据和修改已成
功地写入数据库。
3. rollback tran[saction] [tran_name |save_name]
回滚一个事务到事务的开头或一个保存点。
;4. save tran[saction] save_name
在事务中设置一个保存点。它可以使一个事务
内的部分操作回滚。比如 rollback transaction 保存
点名,即是回滚到所标识的保存点处。
请看如下的示例:
begin tran
* /*A组语句序列*/
save tran mytran
* /*B组语句序列*/
if ...
rollback tran mytran/*仅回滚B组语句序列*/
commit tran /*提交A组语句,
且若未回滚B组语句则提交B组语句*/;4、事务的四个特性;;;;全局变量@@transtate的作用;begin tran
update publishers set pub_id = 9999
where pub_id = 9988
if @@transtate = 2
begin
rollback tran
return
end
if @@transtate = 3
return
commit tran;@@error: 给出最近一次执行的语句引发的
错误号 (0代表未出错)
@@rowcount: 给出受影响的行数
举例: declare @err int
begin tran
update publishers set pub_id = 9999
where pub_id = 9988
select @err = @@error
if @err !=0 /* an error occurred*/
begin
rollback tran /*Rollback changes */
return
end;--cascade change to the titles table
update titles set pub_id = 9999
where pub_id = 9988
select @err = @@error
if @err !=0 /* an error occurrred */
begin
rollback tran /*Changes for both updates
** rolled back. */
return
end
commit tran
; 利用系统过程sp_addmessage增加标准出错信息。
以批方式执行以下存储过程。
ap_addmessage 31001, Transaction aborted. Error occurred while updating publishers table
您可能关注的文档
- 必修一地理太阳高度角.ppt
- 德阳华汉通讯.ppt
- 怎样当好班级小主人.ppt
- 怒江建坝决策案例.ppt
- 怔税与纳税.ppt
- 怎样做好事故车定损工作.ppt
- 思品七下第十一课:自我保护 1、远离危险拒绝侵害.ppt
- 思想史课件3.ppt
- 急救技能大赛方案.ppt
- 怎样挑选雪佛兰科鲁兹脚垫.ppt
- 人教版八年级上册数学精品教学课件 第十三章 三角形 章末整合练.ppt
- 人教版八年级上册数学精品教学课件 第十五章 轴对称 15.3 等腰三角形-15.3.1 等腰三角形-第2课时 等腰三角形的判定 (4).ppt
- 人教版八年级上册数学精品教学课件 极速提分法 第17招 整体思想在解题中的七种技巧.ppt
- 人教版八年级上册数学精品教学课件 第十五章 分式 专项突破9 分式方程的解在求字母的值或取值范围中的常用技巧.ppt
- 人教版八年级上册数学精品教学课件 第十八章 分式 18.3 分式的加法与减法-第1课时 分式的加减.ppt
- 人教版八年级上册数学精品教学课件 第十四章 全等三角形 14.1 全等三角形及其性质 (4).ppt
- 七年级作文成长的经历(11篇).docx
- 法律责任豁免声明及工作证明函(6篇).docx
- 叙事作文那是一次难忘的尝试750字通用14篇.docx
- 沙滩里的秘密500字(14篇).docx
文档评论(0)