查看mysql process id_检查锁定SQL Server数据库的Process ID

检查锁定SQLServer数据库的ProcessID 无 CREATE PROCEDURE #sp_who_lockASBEGINDECLARE @spid INTDECLARE @blk INTDECLARE @count INTDECLARE @index INTDECLARE @lock TINYINT ??SET @lock = 0 ??DECLARE @temp_who_lock AS TABLE (id INT identity(1, 1),sp

检查锁定SQL Server数据库的Process ID

CREATE PROCEDURE #sp_who_lock

AS

BEGIN

DECLARE @spid INT

DECLARE @blk INT

DECLARE @count INT

DECLARE @index INT

DECLARE @lock TINYINT ?

?

SET @lock = 0 ?

?

DECLARE @temp_who_lock AS TABLE (

id INT identity(1, 1),

spid INT,

blk INT

) ?

?

IF @@error <> 0

RETURN @@error ?

?

INSERT INTO @temp_who_lock (

spid,

blk

)

SELECT 0,

blocked

FROM (

SELECT *

FROM master..sysprocesses

WHERE blocked > 0

) a

WHERE NOT EXISTS (

SELECT TOP 1 1

FROM master..sysprocesses

WHERE a.blocked = spid

AND blocked > 0

)

UNION

SELECT spid,

blocked

FROM master..sysprocesses

WHERE blocked > 0 ?

?

IF @@error <> 0

RETURN @@error ?

?

SELECT @count = count(1),

@index = 1

FROM @temp_who_lock ?

?

IF @@error <> 0

RETURN @@error ?

?

IF @count = 0

BEGIN

SELECT N'没有阻塞和死锁信息' ?

?

RETURN 0

END ?

?

WHILE @index <= @count

BEGIN

IF EXISTS (

SELECT TOP 1 1

FROM @temp_who_lock a

WHERE id > @index

AND EXISTS (

SELECT TOP 1 1

FROM @temp_who_lock

WHERE id <= @index

AND a.blk = spid

)

)

BEGIN

SET @lock = 1 ?

?

SELECT @spid = spid,

@blk = blk

FROM @temp_who_lock

WHERE id = @index ?

?

SELECT N'引起数据库死锁的是:' + CAST(@spid AS NVARCHAR(10)) + N'进程号,其执行的SQL语法如下' ?

?

SELECT @spid,

@blk ?

?

DBCC INPUTBUFFER (@spid) ?

?

DBCC INPUTBUFFER (@blk)

END ?

?

SET @index = @index + 1

END ?

?

IF @lock = 0

BEGIN

SET @index = 1 ?

?

WHILE @index <= @count

BEGIN

SELECT @spid = spid,

@blk = blk

FROM @temp_who_lock

WHERE id = @index ?

?

IF @spid = 0

SELECT N'引起阻塞的是:' + CAST(@blk AS NVARCHAR(10)) + N'进程号,其执行的SQL语法如下'

ELSE

SELECT N'进程号SPID:' + CAST(@spid AS NVARCHAR(10)) + N'被进程号SPID:' + CAST(@blk AS NVARCHAR(10)) + N'阻塞,其当前进程执行的SQL语法如下' ?

?

DBCC INPUTBUFFER (@spid) ?

?

DBCC INPUTBUFFER (@blk) ?

?

SET @index = @index + 1

END

END ?

?

RETURN 0

END

GO

?

EXEC #sp_who_lock

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值