Статья по поиску блокировок на БД MS SQL и их удаления.
testbd12 — имя БД, на которой возникли блокировки
Поиск блокировок, запрос
SELECT *
FROM
master.dbo.sysprocesses
WHERE
dbid = DB_ID('testbd12') and blocked <> 0
order by blocked
Получаем список блокированных процессов
spid — процесс
blocked — пид процесса который заблокировал
Смотрим конкретный процесс
select * FROM
master.dbo.sysprocesses
where 1=1
--and blocked <> 0
and spid = 882
Смотрим заблокированный процесс (в примере 882) видим что поле blocked не равно нулю, повторяем поиск с новым spid
Когда поле blocked = 0 значит это первоисточник блокировки (в нашем примере spid = 1534)
!!!! Для анализа проблемы — посмотреть текст запроса — в скобках поле sql_handle процесса блокировки
select * from sys.dm_exec_sql_text (0x01000A0046ECEC13303E4A9D5501000000000000)
Убить проблемный запрос
цифры это spid проблемного запроса первоисточника блокировки
kill 1534