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

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

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

a 事务

ALTER PROCEDURE [dbo].[asuo]ASBEGINbegin tranSELECT TOP 1 * FROM dbo.JYQ_HLT_Order with(ROWLOCK,UpdLock) WHERE orderID=321878UPDATE dbo.JYQ_HLT_Order SET orderBillingstatus=13 WHERE orderID=321878SELECT TOP 1 * FROM dbo.JYQ_HLT_Order WHERE orderID=321878waitfor delay ’00:00:10’COMMIT TRANEND

b 事务

ALTER PROCEDURE [dbo].[bsuo]ASBEGINbegin tranUPDATE dbo.JYQ_HLT_Order SET orderBillingstatus=14 WHERE orderID=321878SELECT TOP 1 * FROM dbo.JYQ_HLT_Order WHERE orderID=321878COMMIT TRANEND

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

with(ROWLOCK)任何作用

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

漫无目的的生活就像出海航行而没有指南针

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

相关文章:

你感兴趣的文章:

标签云: