SQL SERVER 查看死鎖的存儲過程
系統
2314 0
if
?
exists
?(
select
?
*
?
from
?dbo.sysobjects?
where
?id?
=
?
object_id
(N
'
[dbo].[sp_who_lock]
'
)?
and
?
OBJECTPROPERTY
(id,?N
'
IsProcedure
'
)?
=
?
1
)
drop
?
procedure
?
[
dbo
]
.
[
sp_who_lock
]
GO
use
?master
go
create
?
procedure
?sp_who_lock
as
begin
declare
?
@spid
?
int
,
@bl
?
int
,
????????
@intTransactionCountOnEntry
?
int
,
????????
@intRowcount
?
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
轉自:
http://blog.csdn.net/wzy0623/archive/2007/06/21/1660925.aspx
SQL SERVER 查看死鎖的存儲過程
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元