Come possiamo trovare quale tabella è bloccata nel database? Per favore, suggeriscilo.
Puoi usare sp_lock
(e sp_lock2
), ma in SQL Server 2005 in poi questo è deprecato a favore dell'interrogazione 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
Quando leggi le informazioni sp_lock, usa la funzione OBJECT_NAME () per ottenere il nome di una tabella dal suo numero ID, ad esempio:
SELECT nome_oggetto (16003073)
MODIFICARE :
Esiste un altro proc fornito da Microsoft che riporta oggetti senza la traduzione ID: http://support.Microsoft.com/kb/q255596/