use master        --必须在master数据库中创建

go

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_lockinfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[p_lockinfo]

GO

/**//*--处理死锁

查看当前进程,或死锁进程,并能自动杀掉死进程

因为是针对死锁的,所以如果有死锁进程,只能查看死锁进程

当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程

感谢: caiyunxia,jiangopen 两位提供的参考信息

--邹建 2004.04(引用请保留此信息)--*/

/**//*--调用示例

exec p_lockinfo

--*/

create proc p_lockinfo

@kill_lock_spid bit=1,                --是否杀掉死锁的进程,1 杀掉, 0 仅显示

@show_spid_if_nolock bit=1        --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示

as

set nocount on

declare @count int,@s nvarchar(1000),@i int

select id=identity(int,1,1),标志,

进程ID=spid,线程ID=kpid,块进程ID=blocked,数据库ID=dbid,

数据库名=db_name(dbid),用户ID=uid,用户名=loginame,累计CPU时间=cpu,

登陆时间=login_time,打开事务数=open_tran,        进程状态=status,

工作站名=hostname,应用程序名=program_name,工作站进程ID=hostprocess,

域名=nt_domain,网卡地址=net_address

into #t from(

select 标志='死锁的进程',

spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran,

status,hostname,program_name,hostprocess,nt_domain,net_address,

s1=a.spid,s2=0

from master..sysprocesses a join (

select blocked from master..sysprocesses group by blocked

)b on a.spid=b.blocked where a.blocked=0

union all

select '|_牺牲品_>',

spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran,

status,hostname,program_name,hostprocess,nt_domain,net_address,

s1=blocked,s2=1

from master..sysprocesses a where blocked<>0

)a order by s1,s2

select @count=@@rowcount,@i=1

if @count=0 and @show_spid_if_nolock=1

begin

insert #t

select 标志='正常的进程',

spid,kpid,blocked,dbid,db_name(dbid),uid,loginame,cpu,login_time,

open_tran,status,hostname,program_name,hostprocess,nt_domain,net_address

from master..sysprocesses

set @count=@@rowcount

end

if @count>0

begin

create table #t1(id int identity(1,1),a nvarchar(255),b Int,EventInfo nvarchar(1000))

if @kill_lock_spid=1

begin

declare @spid varchar(255),@标志 varchar(255)

while @i<=@count

begin

select @spid=进程ID,@标志=标志 from #t where id=@i

insert #t1 exec('dbcc inputbuffer('+@spid+')')

if @@rowcount=0 insert #t1(a) values(null)

if @标志='死锁的进程' exec('kill '+@spid)

set @i=@i+1

end

end

else

while @i<=@count

begin

select @s='dbcc inputbuffer('+cast(进程ID as varchar)+')' from #t where id=@i

insert #t1 exec(@s)

if @@rowcount=0 insert #t1(a) values(null)

set @i=@i+1

end

select a.*,进程的SQL语句=b.EventInfo

from #t a join #t1 b on a.id=b.id

order by 进程ID

end

set nocount off

go

mysql 杀存储过程进程_SQL SERVER 杀死锁进程存储过程相关推荐

  1. mysql 的命名管道_SQL Server中的命名管道(named pipe)及其使用

    1. 什么是命名管道? 与TCP/IP(传输控制协议或internet协议)一样,命名管道是一种通讯协议.它一般用于局域网中,因为它要求客户端必须具有访问服务器资源的权限. 要解释这个问题,我还是摘录 ...

  2. mysql 事务日志备份_SQL Server恢复模式与事务日志备份

    在SQL Server中,数据库不能像Oracle数据库一样设置归档模式,但是可以进行事务日志备份,其作用等同于Oracle数据库的日志文件归档. SQL Server 备份和还原操作发生在数据库的恢 ...

  3. mysql临时表如何分页_sql server 与 mysql 分页查询以及创建临时表的区别

    一: 分页查询的时候 sql server使用的是top关键字,而mysql 使用的是limit e.g: 查询第五个到第十个入职的职员 sql server2000: select top 6 * ...

  4. mysql udp提权_SQL Server数据库1433端口解封提权

    众所周知,1433端口是SQL Server默认的端口,SQL Server服务使用两个端口:TCP-1433.UDP-1434.其中1433用于供SQL Server对外提供服务,1434用于向请求 ...

  5. 2005本地mysql连接不上_SQL Server 2005/2008 连接不上本地数据库引擎的解决方法

    1.右键我的电脑------------管理-----------服务和应用程序----------------sql server配置管理器--------------------sql serve ...

  6. mysql 2008新建用户_Sql Server 2008数据库新建分配用户的详细步骤

    前言: 当一个项目完成后,为了数据安全,总会对该项目的数据库分配一个用户,应该说总会创建一个用户来管理这个数据库,并且这个用户只能管理这个数据库.搞了好多次,每次都忘记怎么设置,所以写一篇博文记录一下 ...

  7. mysql表变量临时表_sql server 临时表详细讲解及简单示例

    一.概述 在sql server里临时表存储在TempDB库中,TempDB是一个系统数据库,它只有Simple恢复模式,也是最小日志记录操作.主要用于存放局部临时表,全局临时表,表变量,都是基于临时 ...

  8. mysql windows身份验证_SQL Server 2005 怎么就不能用Windows身份验证方式登录呢?

    SQL Server 2005 自从装到我的电脑上始终无法使用Windows身份验证的方式登录,由于使用用户名和密码登录还算顺畅,所以一直忽略了这 SQL Server 2005 自从装到我的电脑上始 ...

  9. mysql 2008数据库配置文件_SQL Server 2008数据库的配置及连接

    在连接数据库之前必须保证SQL Server 2008是采用SQL Server身份验证方式而不是windows身份验证方式.如果在安装时选用了后者,则重新设置如下: SQL Server 2008装 ...

最新文章

  1. 中小型互联网企业安全建设漫谈。
  2. 优雅参数判空_java 方法参数怎么优雅校验?
  3. 高级特性(2)- XML
  4. win10任务管理器快捷键_你都知道吗?Win10任务管理器到底藏了多少秘密
  5. 记Booking.com iOS开发岗位线上笔试
  6. 关于web工程项目路径的一些说明
  7. php设置mysql 编码_php怎么设置mysql编码?
  8. codova添加android慢_Android amp; iOS,请自动开始你们的 battle
  9. pyinstaller 打包出现问题
  10. 一枚比特币30多万,家用电脑24小时挖矿,多久才能挖到一枚?
  11. 一个OSPF的区域备份在手册里看到的
  12. docker的源配置
  13. 基于微信小程序的便捷记账本家庭个人理财小程序#毕业设计
  14. excel查找通配符波浪号,星号
  15. 华为往事(五)--Camp;C08
  16. 计算机底层知识之内存
  17. 如何建立起一套有效的APP监控体系
  18. 生成对抗网络——原理解释和数学推导
  19. nRF51822定时器设置
  20. (自)协方差矩阵与互协方差矩阵简介

热门文章

  1. Boost.Asio入门
  2. zedboard:使用ISE和modelsim搭建仿真环境
  3. webgl坐标转换_WebGL 坐标系统
  4. mysql数据丢失_图解MySQL | 「原理解析」 MySQL使用固定的server_id导致数据丢失
  5. hashmap::begin() 坑
  6. [Web 前端] mobx教程(二)-mobx主要概念
  7. git 常用命令以及其他使用笔记
  8. 详谈调用winpcap驱动写arp多功能工具
  9. 《Cocos2d 跨平台游戏开发指南(第2版)》一1.9 添加动作到精灵
  10. Android通过for循环批量发送短信