mssql 查找导致锁的SQL语句
--列出最初锁住资源,导致一连串其它处理序被锁住的起始源头IF EXISTS(SELECT * FROM master..sysprocesses WHERE spid
IN (SELECT blocked FROM master..sysprocesses)) --确定有处理序被其它的处理序锁住
SELECT spid 处理序,status 状态, 登录账号=SUBSTRING(SUSER_SNAME(sid),1,30),
用户机器名称=SUBSTRING(hostname,1,12), 是否被锁住=CONVERT(char(3),blocked),
数据库名称 = SUBSTRING(DB_NAME(dbid),1,10),cmd 命令,waittype 等待状态
FROM master..sysprocesses
--列出锁住别人(在别的处理序中 blocked 字段出现的值),但自己未被锁住(blocked=0)
WHERE spid IN (SELECT blocked FROM master.dbo.sysprocesses) AND blocked=0
ELSE
SELECT '没有处理序被锁住'
--显示当前进程最后sql语句
dbcc inputbuffer(888) --888即为查询到的ID
页:
[1]