web-dev-qa-db-fra.com

Rechercher une table verrouillée dans SQL Server

Comment trouver quelle table est verrouillée dans la base de données? Veuillez suggérer.

31
user47957

Vous pouvez utiliser sp_lock (et sp_lock2), mais à partir de SQL Server 2005, cela est déconseillé au profit de l'interrogation 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
83
Mitch Wheat

sp_lock

Lors de la lecture des informations sp_lock, utilisez la fonction OBJECT_NAME () pour obtenir le nom d'une table à partir de son numéro ID, par exemple:

SELECT nom_objet (16003073)

MODIFIER :

Il existe un autre proc fourni par Microsoft qui signale les objets sans la traduction de l'ID: http://support.Microsoft.com/kb/q255596/

8
Learning