创造死锁

-- 开始事务
BEGIN TRANSACTION 

update job set create_user='0000' where id = '1'

WAITFOR DELAY '02:00'

-- 执行查询
select * from job where id = '1';

解决方法

方法一

  1. 打开sqlserver管理工具,新建sql查询tab
  2. 执行select * from master.sys.sysprocesses where dbid=db_id(‘数据库名’)
  3. 然后会查询到具体有哪个在连接到此数据库
  4. 直接KILL spid的具体数值就可以了

方法二

-- 首先查询
select    
    request_session_id spid,   
    OBJECT_NAME(resource_associated_entity_id) tableName    
from    
    sys.dm_tran_locks   
where    
    resource_type='OBJECT' 
-- 然后执行
	kill 67;

注意事项:
有些用户连接可以在kill掉后自动重建,但期间有一段时间,如果碰到这种情况,需要在执行完kill命令后立即执行脱机操作

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐