Найти заблокированную таблицу в SQL Server - PullRequest
32 голосов
/ 01 марта 2009

Как мы можем найти, какая таблица заблокирована в базе данных? Пожалуйста, предложите.

Ответы [ 2 ]

84 голосов
/ 01 марта 2009

Вы можете использовать sp_locksp_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
8 голосов
/ 01 марта 2009

sp_lock

При чтении информации sp_lock используйте функцию OBJECT_NAME (), чтобы получить имя таблицы из ее идентификационного номера, например:

ВЫБРАТЬ имя_объекта (16003073)

РЕДАКТИРОВАТЬ:

Существует еще одна процедура, предоставляемая Microsoft, которая сообщает объекты без перевода идентификатора: http://support.microsoft.com/kb/q255596/

...