Wie können wir herausfinden, welche Tabelle in der Datenbank gesperrt ist? Bitte vorschlagen.
Sie können sp_lock
(und sp_lock2
), aber ab SQL Server 2005 wird dies zu Gunsten der Abfrage 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
Verwenden Sie beim Lesen von sp_lock-Informationen die Funktion OBJECT_NAME (), um den Namen einer Tabelle anhand ihrer ID-Nummer abzurufen. Beispiel:
SELECT Objektname (16003073)
EDIT:
Es gibt einen weiteren von Microsoft bereitgestellten Proc, der Objekte ohne die ID-Übersetzung meldet: http://support.Microsoft.com/kb/q255596/