我们如何找到数据库中锁定的表?请建议。
答案 0 :(得分:84)
您可以使用sp_lock
(以及sp_lock2
),但在SQL Server 2005及更高版本中,不推荐使用此选项,而有利于查询sys.dm_tran_locks
:
select
object_name(p.object_id) as TableName,
resource_type, resource_description
from
sys.dm_tran_locks l
join sys.partitions p on l.resource_associated_entity_id = p.hobt_id
答案 1 :(得分:8)
在读取sp_lock信息时,使用OBJECT_NAME()函数从其ID号中获取表的名称,例如:
SELECT object_name(16003073)
编辑:
microsoft提供了另一个proc,它报告没有ID转换的对象:http://support.microsoft.com/kb/q255596/