数据库中的锁.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库中的锁

/**********? 加锁?? *************** 设table1(A,B,C) A??? B??? C a1?? b1?? c1 a2?? b2?? c2 a3?? b3?? c3 1)排它锁 新建两个连接 在第一个连接中执行以下语句 begin tran ?? update table1 ?? set A=’aa’ ?? where B=’b2’ ?? waitfor delay ’00:00:30’? --等待30秒 commit tran 在第二个连接中执行以下语句 begin tran ?? select * from table1 ?? where B=’b2’ commit tran 若同时执行上述两个语句,则select查询必须等待update执行完毕才能执行即要等待30秒 2)共享锁 在第一个连接中执行以下语句 begin tran ?? select * from table1 holdlock -holdlock人为加锁 ?? where B=’b2’ ?? waitfor delay ’00:00:30’? --等待30秒 commit tran 在第二个连接中执行以下语句 begin tran ?? select A,C from table1 ?? where B=’b2’ ?? update table1 ?? set A=’aa’ ?? where B=’b2’ commit tran 若同时执行上述两个语句,则第二个连接中的select查询可以执行 而update必须等待第一个连接中的共享锁结束后才能执行 即要等待30秒 3)死锁 增设table2(D,E) D??? E d1?? e1 d2?? e2 在第一个连接中执行以下语句 begin tran ?? update table1 ?? set A=’aa’ ?? where B=’b2’ ?? waitfor? delay ’00:00:30’ ?? update table2 ?? set D=’d5’ ?? where E=’e1’ commit tran 在第二个连接中执行以下语句 begin tran ?? update table2 ?? set D=’d5’ ?? where E=’e1’ ?? waitfor? delay ’00:00:10’ ?? update table1 ?? set A=’aa’ ?? where B=’b2’ commit tran 同时执行,系统会检测出死锁,并中止进程 SET IMPLICIT_TRANSACTIONS? ON --用户每次必须显式提交或回滚。否则当用户断开连接时, ????????????????????????????? --事务及其所包含的所有数据更改将回滚 SET IMPLICIT_TRANSACTIONS? OFF --自动提交模式。在自动提交模式下,如果各个语句成功 ?????????????????????????????? --完成则提交。 修改前 RS.lock 完成后 RS.unlock Sql中游标和加锁的问题 日期:2000-11-27 15:42:00 出处:ALL ASP 作者:feny % ’游标类型 Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 ’加锁类型 Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4? % % set conn = server.createobject(’adodb.connection’) % % set rsmov = server.createobject(’adodb.recordset’) % % conn.open ’数据源名称’, ’sa’, ’ % % rsmov.open sqlmov, conn, adopenkeyset, adlockreadonly % ??? 游标使用时是比较灵活的,它有时用来描述一个记录集,有时又是用来描述当前记录集中某一条记录的指针。游标主要是用来建立一个关系数据库中行/列关系的一种SQL可利用的访问格式。与游标有关系的技术术语还有一个叫Bookmark的。如果你选择的游标方式支持Bookmarks。数据库将提供有关记录数目的强大功能。 ??? 在上面写出的那么多游标方式中,adOpenDyn

文档评论(0)

saa9099 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档