查询Sql Server 中未提交的事务并删除

写代码,总有BUG。

今天遇到存储过程中COMMITE前,写了RETURN,并且调用了,导致库中表锁定,程序卡死。

解决方式办法

第一步:找到未提交的事务

-- 查询未提交的事务
USE master
GO
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT es.session_id, es.login_name, es.host_name, est.text
, cn.last_read, cn.last_write, es.program_name
FROM sys.dm_exec_sessions es
INNER JOIN sys.dm_tran_session_transactions st --系统里还存在的事务
ON es.session_id = st.session_id
INNER JOIN sys.dm_exec_connections cn
ON es.session_id = cn.session_id
CROSS APPLY sys.dm_exec_sql_text(cn.most_recent_sql_handle) est
LEFT OUTER JOIN sys.dm_exec_requests er
ON st.session_id = er.session_id
AND er.session_id IS NULL

第二步:清除它

-- 删除未提交的事务
-- KILL session_id
KILL 60

 

posted @ 2021-01-19 17:04  绝不放过一个Bug  阅读(1821)  评论(0编辑  收藏  举报