使用SQL Server 2008,如何检测记录是否被锁定?
编辑:
我需要知道这一点,所以我可以通知用户该记录无法访问,因为记录已被阻止。
答案 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
提示,如果出现锁定则会抛出错误。