具體操作:
根據rocesses中的spid和blocked查詢當前阻塞語句的主人,然後使用DBCC INPUTBUFFER ()檢視阻塞語句。
例子:
開啟三個查詢分析器 A、B、C
建立一個測試用的表 testDia
Create Table testDia(ID int);
在A執行以下語句:
Begin tran
Insert Into testDia Values(1);
在B執行以下語句:
Select * from testDia
當前情況:B中沒有顯示結果,顯示狀態為等待
在C執行以下語句:
declare @spid int, @blocked int
select top 1 @blocked = blocked
from rocesses
where blocked > 0
DBCC INPUTBUFFER (@blocked)
技術參考:
DBCC INPUTBUFFER (Transact-SQL)
顯示從客戶端傳送到 Microsoft SQL Server 2005 例項的最後一個語句。
DBCC INPUTBUFFER ( session_id [ , request_id ] )
[WITH NO_INFOMSGS ]
session_id
與各活動主連線關聯的會話 ID。
request_id
要在當前會話中精確搜尋的`請求(批)。
下面的查詢返回 request_id:
複製程式碼
SELECT request_id
FROM _exec_requests
WHERE session_id = @@spidWITH
啟用要指定的選項。
NO_INFOMSGS
取消嚴重級別從 0 到 10 的所有資訊性訊息。