gpt4 book ai didi

sql-server - T-SQL 中的悲观锁

转载 作者:行者123 更新时间:2023-12-02 22:32:35 25 4
gpt4 key购买 nike

如果我在 MS SQL Server 中选择一行进行更新,并希望将其锁定直到我更新或取消,哪个选项更好:-

1) 使用 UPDLOCK 等查询提示2)对事务使用REPEATABLE READ隔离级别3)任何其他选项。

谢谢,泽克。

最佳答案

如果您正在等待其他资源(例如最终用户),那么请采纳戴夫·马克尔的建议,不要这样做。

否则,请尝试以下 T-SQL 代码:

BEGIN TRAN

SELECT *
FROM authors AU
WITH (HOLDLOCK, ROWLOCK)
WHERE AU.au_id = '274-80-9391'

/* Do all your stuff here while the row is locked */

COMMIT TRAN

HOLDLOCK 提示礼貌地要求 SQL Server 保持锁定,直到您提交事务。 ROWLOCK 提示礼貌地要求 SQL Server 仅锁定该行,而不是发出页锁或表锁。

请注意,如果大量行受到影响,SQL Server 要么会采取主动并升级为页锁,要么您将有一整群行锁填满服务器内存并导致处理陷入困境。

关于sql-server - T-SQL 中的悲观锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/386162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com