查看阻塞和死锁信息的存储过程
2012-11-06 09:57
369 查看
USE [master] GO create procedure [sp_who_lock] as begin declare @spid int,@bl int, @intCountProperties int, @intCounter int create table #tmp_lock_who (id int identity(1,1),spid smallint,bl smallint) IF @@ERROR<>0 RETURN @@ERROR insert into #tmp_lock_who(spid,bl) select 0 ,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) union select spid,blocked from sysprocesses where blocked>0 IF @@ERROR<>0 RETURN @@ERROR -- 找到临时表的记录数 select @intCountProperties = Count(*),@intCounter = 1 from #tmp_lock_who IF @@ERROR<>0 RETURN @@ERROR if @intCountProperties=0 select '现在没有阻塞和死锁信息' as message -- 循环开始 while @intCounter <= @intCountProperties begin -- 取第一条记录 select @spid = spid,@bl = bl from #tmp_lock_who where id = @intCounter begin if @spid =0 select '引起数据库死锁的是: '+ CAST(@bl AS VARCHAR(10)) + '进程号,其执行的SQL语法如下' else select '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '进程号SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下' DBCC INPUTBUFFER (@bl ) end -- 循环指针下移 set @intCounter = @intCounter + 1 end drop table #tmp_lock_who return 0 end GO
相关文章推荐
- 查看mssql死锁的详细信息(存储过程)
- SQLServer 检查死锁及阻塞,解决死锁及阻塞,查看数据库所有锁信息.
- SQL SERVER 查看死锁的存储过程
- sqlserver检测死锁;杀死锁和进程;查看锁信息
- SqlServer 查看死锁信息
- sql server 2000阻塞和死锁问题的查看与解决方法
- 查看数据库里阻塞和死锁情况.sql
- oracle查看死锁的信息和查看死锁的语句
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 常用脚本--查看死锁和阻塞usp_who_lock
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 查看死锁存储过程 sp_who_lock
- 【SQLServer 2008】数据库查看死锁、阻塞的SQL语句
- 查看死锁存储过程(转载)
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 专门查看阻塞和死锁情况以及引起的SQL语句,你可以创建后,直接运行之。
- 查看死锁存储过程(转载)
- 一短查询SQL Server服务器阻塞和死锁信息用的脚本
- 查看死锁存储过程