gpt4 book ai didi

sql-server - SQL Server 中的 U 模式锁定

转载 作者:行者123 更新时间:2023-12-05 00:08:29 26 4
gpt4 key购买 nike

我有两个过程在不同的 SQL Server 代理作业中运行。两者都更新同一张表。现在我遇到了死锁错误。

该表还有一个更新历史表的触发器。

当我检查 XML 死锁报告时,它显示以下信息:

<owner-list>
<owner mode="U" />
</owner-list>
<waiter-list>
<waiter mode="U" requestType="wait" />
</waiter-list>

试图找出问题所在。问题是间歇性的。

最佳答案

您可能需要共享您的存储过程代码,以便我们提供帮助。仅有 XML 代码是不够的。

话虽如此,您是否将代码包装在交易中?然后锁表?

像这样:

BEGIN TRANSACTION

SELECT *
FROM tblYourTable
WITH (TABLOCK, HOLDLOCK) -- lock the table until the end of the transaction

-- Continue other queries with the table (Updating, Inserting, etc.)

COMMIT TRANSACTION -- release the lock (and transaction) after you are done with all of your processing.

如果出现问题,您也可以使用回滚。

但是,为了回答您关于 U 锁的问题,这里有一个关于锁在 SQL Server 中如何工作的很好的总结:Lock Types

关于sql-server - SQL Server 中的 U 模式锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46370501/

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