SqlServer表锁住后,必须手动杀掉死锁的会话ID,才能恢复正常,相关操作:
查看被锁表:
select request_session_id
spid,OBJECT_NAME(resource_associated_entity_id) tableName from
sys.dm_tran_locks where resource_type=‘OBJECT’
–spid 锁表进程
–tableName 被锁表名
解锁:
declare @spid int Set @spid = 57 --锁表进程 declare @sql varchar(1000) set
@sql='kill '+cast(@spid as varchar) exec(@sql)
查询出死锁的SPID
select blocked from (select * from sysprocesses where blocked>0 ) a
where not exists(select * from (select * from sysprocesses where
blocked>0 ) b where a.blocked=spid)
输出引起死锁的操作
DBCC INPUTBUFFER (@spid)
查询当前进程数
select count(-1) from sysprocesses where dbid in (select dbid from
sysdatabases where name like ‘%telcount%’);
本文介绍如何在SQLServer中处理表锁导致的死锁情况,包括查询被锁表及进程、解除死锁的方法以及获取死锁相关操作信息。
561

被折叠的 条评论
为什么被折叠?



