您的位置:首页 > 数据库

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

2015-05-06 10:57 381 查看
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) 必须组合使用才可以生效
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: