如何检测记录被锁定?

时间:2010-09-22 09:52:56

标签: sql sql-server locking

使用SQL Server 2008,如何检测记录是否被锁定?

编辑:

我需要知道这一点,所以我可以通知用户该记录无法访问,因为记录已被阻止。

1 个答案:

答案 0 :(得分:3)

在SQL 2008的大多数情况下,您可以执行以下操作:

if exists(select 0 from table with (nolock) where id = @id) 
   and not exists(select 0 from table with(readpast) where id = @id)
begin
  -- Record is locked! Do something.

end

如果这还不够(也就是说,你也需要忽略表级锁),请使用NOWAIT提示,如果出现锁定则会抛出错误。