【发布时间】:2021-11-11 00:13:13
【问题描述】:
使用 (TABLOCKX) 和同时使用 (TABLOCKX, HOLDLOCK) 提示有什么区别? 在事务提交之前,似乎表被一个 TABLOCKX 独占锁定,(TABLOCKX,HOLDLOCK)有什么好处?
例如,
BEGIN TRANSACTION SELECT TOP 1 * FROM Foo WITH (TABLOCKX)...
vs
BEGIN TRANSACTION SELECT TOP 1 * FROM Foo WITH (TABLOCKX, HOLDLOCK)...
【问题讨论】:
-
这能回答你的问题吗? TABLOCK vs TABLOCKX
-
TABLOCKX在表上获得一个排他锁,防止其他任何锁被占用。使用HOLDLOCK会导致该锁一直保留到事务结束,而不是直到使用完该表。 -
@Jayasurya Satheesh,我已经对其进行了审查,但它比较了其他提示。我的问题是 (TABLOCKX, HOLDLOCK) 与单 (TABLOCKX) 有什么好处
标签: sql sql-server tsql