博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[SQL]死锁处理语句
阅读量:5968 次
发布时间:2019-06-19

本文共 2856 字,大约阅读时间需要 9 分钟。

引言

今天在群里看到分享的解决死锁的sql语句,就想着这东西以后肯定用的着,就下载下来,在这里记录一下,以后查找也方便。

SQL

1 SET QUOTED_IDENTIFIER ON 2 GO 3 SET ANSI_NULLS ON 4 GO 5 CREATE PROCEDURE sp_who_lock 6 AS 7     BEGIN 8         DECLARE @spid INT , 9             @bl INT ,10             @intTransactionCountOnEntry INT ,11             @intRowcount INT ,12             @intCountProperties INT ,13             @intCounter INT14         CREATE TABLE #tmp_lock_who15             (16               id INT IDENTITY(1, 1) ,17               spid SMALLINT ,18               bl SMALLINT19             )20          IF @@ERROR <> 021             RETURN @@ERROR22         INSERT INTO #tmp_lock_who ( spid, bl )23                 SELECT 0, blocked24                     FROM ( SELECT *25                             FROM sys.sysprocesses26                             WHERE blocked > 027                          ) a28                     WHERE NOT EXISTS ( SELECT *29                                         FROM ( SELECT *30                                                 FROM sys.sysprocesses31                                                 WHERE blocked > 032                                              ) b33                                         WHERE a.blocked = spid )34                 UNION35                 SELECT spid, blocked36                     FROM sys.sysprocesses37                     WHERE blocked > 038         IF @@ERROR <> 039             RETURN @@ERROR40        -- 找到临时表的记录数41         SELECT @intCountProperties = COUNT(*), @intCounter = 142             FROM #tmp_lock_who43          IF @@ERROR <> 044             RETURN @@ERROR45         IF @intCountProperties = 046             SELECT N'现在没有阻塞和死锁信息' AS message47        -- 循环开始48         WHILE @intCounter <= @intCountProperties49             BEGIN50               -- 取第一条记录51                 SELECT @spid = spid, @bl = bl52                     FROM #tmp_lock_who53                     WHERE Id = @intCounter54                 BEGIN55                     IF @spid = 056                         SELECT N'引起数据库死锁的是: ' + CAST(@bl AS VARCHAR(10))57                                 + N'进程号,其执行的SQL语法如下'58                     ELSE59                         SELECT N'进程号SPID:' + CAST(@spid AS VARCHAR(10))60                                 + N'被进程号SPID:' + CAST(@bl AS VARCHAR(10)) N'阻塞,其当前进程执行的SQL语法如下'61                     DBCC INPUTBUFFER (@bl )62                 END63               -- 循环指针下移64                 SET @intCounter = @intCounter + 165             END66         DROP TABLE #tmp_lock_who67         RETURN 068     END69 go70 EXEC sp_who_lock71 DROP PROC  sp_who_lock72 GO73 SET QUOTED_IDENTIFIER OFF74 GO75 76 SET ANSI_NULLS ON77 78 GO

 

博客地址:
博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。
转载:http://www.cnblogs.com/wolf-sun/p/3879050.html
你可能感兴趣的文章
[LeetCode] Single Number 单独的数字
查看>>
Android——Intent动作汇总(转)
查看>>
Android根据baidu Android定位SDK实现定位
查看>>
thinkphp 3.2跟3.1 区别
查看>>
智能手机屏幕尺寸和分辨率一览表
查看>>
【转】每天一个linux命令(50):crontab命令
查看>>
IOS中UITableView异步加载图片的实现
查看>>
sencha touch Model validations 自定义验证 二选一输入验证、重复验证、时间验证、比较验证、条件验证(2015-1-14)...
查看>>
javascript的实现事件的一些实例
查看>>
opencv第一课 打开一个图片
查看>>
二分查找
查看>>
shell编程中的select用法
查看>>
ORA-14400: inserted partition key does not map to any partition
查看>>
Fileupload-1.2.1使用简单样例
查看>>
谈谈分布式事务之三: System.Transactions事务详解[下篇]
查看>>
linux目录结构
查看>>
adb无线网络调试
查看>>
java.lang.ClassCastException
查看>>
YbSoftwareFactory 代码生成插件【二十二】:CMS基础功能的实现
查看>>
linux系统调用和库函数调用的区别
查看>>