DBCC INPUTBUFFER (Transact-SQL)
顯示從用戶端傳送給 Microsoft SQL Server 執行個體的最後一個陳述式。
語法
DBCC INPUTBUFFER (session_id [ , request_id ])
[WITH NO_INFOMSGS ]
引數
session_id
這是每個使用中的主要連接所關聯的工作階段識別碼。request_id
這是要在目前工作階段內搜尋的確實要求 (批次)。下列查詢會傳回 request_id:
SELECT request_id FROM sys.dm_exec_requests WHERE session_id = @@spid;
WITH
啟用要指定的選項。NO_INFOMSGS
抑制所有嚴重性層級在 0 到 10 的參考訊息。
結果集
DBCC INPUTBUFFER 會傳回含有下列資料行的資料列集。
資料行名稱 |
資料類型 |
說明 |
---|---|---|
EventType |
nvarchar(30) |
事件類型。這可以是 RPC 事件或語言事件。如果沒有偵測到上一個事件,輸出將為無事件。 |
參數 |
smallint |
0 = 文字 1- n = 參數 |
EventInfo |
nvarchar(4000) |
如果是 EventType 是 RPC,EventInfo 只包含程序名稱。如果 EventType 是「語言」,便只會顯示事件的前 4000 個字元。 |
例如,當緩衝區內的最後一個事件是 DBCC INPUTBUFFER(11),DBCC INPUTBUFFER 會傳回下列結果集。
EventType Parameters EventInfo
-------------- ---------- ---------------------
Language Event 0 DBCC INPUTBUFFER (11)
(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
權限
需要下列其中之一:
使用者必須是系統管理員 (sysadmin) 固定伺服器角色的成員。
使用者必須擁有 VIEW SERVER STATE 權限。
session_id 必須與執行命令的工作階段識別碼相同。若要判斷工作階段識別碼,請執行下列查詢:
SELECT @@spid;
範例
下列範例會在先前的連接執行長交易時,在第二個連接上執行 DBCC INPUTBUFFER。
CREATE TABLE dbo.T1 (Col1 int, Col2 char(3));
GO
DECLARE @i int = 0;
BEGIN TRAN
SET @i = 0;
WHILE (@i < 100000)
BEGIN
INSERT INTO dbo.T1 VALUES (@i, CAST(@i AS char(3)));
SET @i += 1;
END;
COMMIT TRAN;
--Start new connection #2.
DBCC INPUTBUFFER (52);