注册 | 登录
欢迎注册会员

当前位置:首页 > 数据库 > MSSQL数据库 > 正文

查数据库中死锁问题的SQL

来源:程序人生 【 】 浏览:1577 添加日期:2010-08-12 11:10:50 我要评论(0)
SQL Code复制内容到剪贴板
  1. declare @spid int,@bl int    
  2.   
  3. DECLARE s_cur CURSOR FOR    
  4.   
  5. select 0 ,blocked    
  6.   
  7. from (select * from sysprocesses where blocked>0 ) a    
  8.   
  9. where not exists(select * from (select * from sysprocesses where blocked>0 ) b    
  10.   
  11. where a.blocked=spid)    
  12.   
  13. union select spid,blocked from sysprocesses where blocked>0    
  14.   
  15. OPEN s_cur    
  16.   
  17. FETCH NEXT FROM s_cur INTO @spid,@bl    
  18.   
  19. WHILE @@FETCH_STATUS = 0    
  20.   
  21. begin    
  22.   
  23. if @spid =0    
  24.   
  25. select ' 引起数据库死锁的是: 'CAST(@bl AS VARCHAR(10)) + ' 进程号, 其执行的SQL 语法如下'    
  26.   
  27. else    
  28.   
  29. select ' 进程号SPID :'CAST(@spid AS VARCHAR(10))+ ' 被' + ' 进程号SPID :'CAST(@bl AS VARCHAR(10)) +' 阻塞, 其当前进程执行的SQL 语法如下'    
  30.   
  31. DBCC INPUTBUFFER (@bl )    
  32.   
  33. FETCH NEXT FROM s_cur INTO @spid,@bl    
  34.   
  35. end    
  36.   
  37. CLOSE s_cur    
  38.   
  39. DEALLOCATE s_cur    

 

在sql2000的查询分析器中运行


你浏览的文章是 - 《查数据库中死锁问题的SQL》!
文章出处:https://www.procedurelife.com/content/akkhle.html
0% (0)
0% (0)
评论0
游客
1 2