查询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