1、捂执涡扔使用sqlserver命令查看数据库死锁,重点是了解系统进程表【sysprocesses】,我们把这段sql语句写成SP_WHO_LOCKselect 0 ,blocked from (s髫潋啜缅elect * from sysprocesses where blocked>0 ) a where not exists(select * from (select * from sysprocesses where blocked>0 ) b where a.blocked=spid) union select spid,blocked from sysprocesses where blocked>0
2、按F5执行sp_who_lock,查看具体死锁进程,看看是那个表或者事务存在问题,从举例中可以看到我目前是没有死锁的
3、假如出现了死锁,嚼但匙噻首先了解是否能直接解决,使用kill命令,先使用sp_who查看是谁造成了进程死锁,通知相关人之后,kill掉,如图所示:sp_who 找出第spid=55的进程是备份任务,假如它死锁了,直接使用kill 55来结束进程
4、使用kill命令之后,重新执行sp_who,发现55进程已经解锁不存在了