Как определить, заблокирована ли текущая сессия?

#sql-server

Вопрос:

Есть ли запрос, который я могу выполнить в SSMS, чтобы узнать, заблокирован ли текущий сеанс, в котором я нахожусь. Например, если BEGIN TRAN бы оператор был запущен и никогда не был разрешен, есть ли запрос, который показал бы это? И еще раз, в частности, является ли вкладка/сеанс, в котором я сейчас набираю, заблокированной?

Ответ №1:

Конечно, DMV sys.dm_tran_locks показывает все текущие или запрошенные блокировки, и функция @@spid возвращает текущую session_id ,

Так:

 select *
from sys.dm_tran_locks
where request_session_id = @@spid