SQL ServerBlocking & locks
Blocking chain
Who is blocked, by whom, for how long, and the last statement the blocker ran. A blocker whose SQL looks finished is usually an open transaction.
Not yet verified. How scripts are tested
1SELECT w.session_id AS blocked_session,2 w.blocking_session_id,3 w.wait_type, w.wait_duration_ms,4 DB_NAME(r.database_id) AS database_name,5 t.text AS blocked_sql,6 bt.text AS blocker_last_sql7FROM sys.dm_os_waiting_tasks w8JOIN sys.dm_exec_requests r ON r.session_id = w.session_id9CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t10LEFT JOIN sys.dm_exec_connections bc ON bc.session_id = w.blocking_session_id11OUTER APPLY sys.dm_exec_sql_text(bc.most_recent_sql_handle) bt12WHERE w.blocking_session_id IS NOT NULL13 AND w.blocking_session_id <> w.session_id14ORDER BY w.wait_duration_ms DESC;Paste it into your query tool.