1

我在 SQL Server 中有一个具有 ID 列的表,该表也设置为唯一聚集索引。

我需要确定给定 ID 中的哪些记录被锁定为在另一个事务中被删除。

如果我使用 READPAST,我只会得到那些未锁定的记录,但不能保证其余记录存在或正在另一个事务中删除。删除记录的 NOLOCK 不会返回任何数据。

我发现的唯一解决方法是在 READPAST 未检索到的那些 ID 上使用 NOWAIT 执行 SELECT 并检测锁定超时错误,但我需要分别为每条记录执行此操作。

在不使用系统表或存储过程的情况下,有没有更快的替代方案?

4

0 回答 0