码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver 锁定一行数据,禁止读取,修改和删除

时间:2015-05-06 13:25:30      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

sql 事务中 有时候需要锁定某行,等事物完成后 释放此行。


使用 with(ROWLOCK,UpdLock)   锁定当前行。禁止读取,修改和删除


a 事务

ALTER PROCEDURE [dbo].[asuo]

AS
BEGIN


 begin tran
SELECT TOP 1 * FROM dbo.JYQ_HLT_Order with(ROWLOCK,UpdLock)  WHERE orderID=321878
UPDATE dbo.JYQ_HLT_Order SET orderBillingstatus=13   WHERE orderID=321878
SELECT TOP 1 * FROM dbo.JYQ_HLT_Order  WHERE orderID=321878
waitfor delay ‘00:00:10‘
 COMMIT TRAN
END


b 事务


ALTER PROCEDURE [dbo].[bsuo]

AS
BEGIN
 begin tran
UPDATE dbo.JYQ_HLT_Order SET orderBillingstatus=14   WHERE orderID=321878
SELECT TOP 1 * FROM dbo.JYQ_HLT_Order  WHERE orderID=321878
 COMMIT TRAN
END



b事务等待 a事务 COMMIT TRAN 后 才会执行。

with(ROWLOCK)任何作用

with(ROWLOCK,UpdLock)   必须组合使用才可以生效

sqlserver 锁定一行数据,禁止读取,修改和删除

标签:

原文地址:http://blog.csdn.net/wangzhiqiang123456/article/details/45533137

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!