您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

TABLOCKX与可序列化

TABLOCKX与可序列化

在这种情况下,

这两个概念是不同的,您想要的也不是。

若要执行所需的操作,以避免出现竞争情况,您需要强制使用非阻塞(READPAST)排他(UPDLOCK)行级(ROWLOCK)锁。您还可以使用OUTPUT子句将其设为单个原子语句。这样可以很好地扩展。

UPDATE
    E
SET
   [status] = 'PROCESSING', [username] = @Username
OUTPUT
   INSERTED.*
FROM
   (
    SELECT TOP 1 id, [status], [username]
    FROM Exceptions (ROWLOCK, READPAST, UPDLOCK)
    WHERE [status] = 'READY'
    ORDER BY id
   ) E

一般来说,锁有3个方面

其他 2022/1/1 18:34:16 有491人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶