如何在数据库中找到被锁定的表?请提供建议。
如何在数据库中找到被锁定的表?请提供建议。
你可以使用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
在查看 sp_lock
信息时,使用 OBJECT_NAME()
函数通过其 ID 号获取表的名称,例如:
SELECT object_name(16003073)
编辑:
还有一种由Microsoft提供的过程可以报告没有ID转换的对象:http://support.microsoft.com/kb/q255596/