加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer的更新锁(UPDLOCK)

发布时间:2020-12-12 15:19:00 所属栏目:MsSql教程 来源:网络整理
导读:UPDLOCK 读取表时使用更新锁,而不使用共享锁,并将锁一直保留到语句或事务的结束。UPDLOCK 的优点是允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改。 这是SqlServer2000中对更新锁的说明. 当我们用UPDLOCK来

UPDLOCK 读取表时使用更新锁,而不使用共享锁,并将锁一直保留到语句或事务的结束。UPDLOCK 的优点是允许您读取数据(不阻塞其它事务)并在以后更新数据,同时确保自从上次读取数据后数据没有被更改。 这是SqlServer2000中对更新锁的说明. 当我们用UPDLOCK来读取记录时可以对取到的记录加上更新锁,从而加上锁的记录在其它的线程中是不能更改的只能等本线程的事务结束后才能更改,我如下示例: BEGIN TRANSACTION --开始一个事务 SELECT Qty ?FROM myTable WITH (UPDLOCK) ?WHERE Id in (1,2,3) ?UPDATE myTable SET Qty = Qty - A.Qty ?FROM myTable? AS A ?INNER JOIN? @_Table AS B ON A.ID = B.ID COMMIT TRANSACTION --提交事务 这样在更新时其它的线程或事务在这些语句执行完成前是不能更改ID是1,2,3的记录的.其它的都可以修改和读,1,2,3的只能读,要是修改的话只能等这些语句完成后才能操作.从而保证的数据的修改正确.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读