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) 必须组合使用才可以生效
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。