【问题标题】:Find Locked Table in SQL Server在 SQL Server 中查找锁定的表
【发布时间】:2009-03-01 07:51:35
【问题描述】:

我们如何找到数据库中被锁定的表?请,建议。

【问题讨论】:

    标签: sql-server sql-server-2008 sql-server-2005 sql-server-2012 sql-server-2008-r2


    【解决方案1】:

    您可以使用 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
    

    【讨论】:

      【解决方案2】:

      sp_lock

      读取 sp_lock 信息时,使用 OBJECT_NAME( ) 函数从表的 ID 号中获取表的名称,例如:

      选择对象名称(16003073)

      编辑:

      微软提供了另一个 proc 报告没有 ID 转换的对象:http://support.microsoft.com/kb/q255596/

      【讨论】:

      • 链接已损坏,在 Microsoft 的站点中搜索 sp_lock2 不再返回任何内容。我猜他们终于放弃了这种方法。
      猜你喜欢
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      相关资源
      最近更新 更多