次の方法で共有


DBCC INPUTBUFFER (Transact-SQL)

クライアントから MicrosoftSQL Server インスタンスに最後に送信されたステートメントを表示します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

DBCC INPUTBUFFER ( session_id [ , request_id ])
[WITH NO_INFOMSGS ]

引数

  • session_id
    アクティブな各プライマリ接続に関連付けられているセッション 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 Event または Language Event になります。前回のイベントが検出されなかった場合、出力は No Event になります。

Parameters

int

0 = テキスト

1- n = パラメータ

EventInfo

nvarchar(4000)

EventType が RPC の場合、EventInfo にはプロシージャ名だけが含まれます。EventType が Language の場合は、イベントの最初の 4,000 文字だけが表示されます。

たとえば、DBCC INPUTBUFFER では、バッファ内の最後のイベントが DBCC INPUTBUFFER(11) である場合、次の結果セットが返されます。

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 は、コマンドが実行されるセッション ID と同じである必要があります。セッション ID を特定するには、次のクエリを実行します。

    SELECT @@spid
    

次の例では、前の接続で長いトランザクションが実行されている間に、2 番目の接続で DBCC INPUTBUFFER を実行します。

CREATE TABLE T1 (Col1 int, Col2 char(3));
GO
DECLARE @i int;
SELECT @i = 0
BEGIN TRAN
SELECT @i = 0
WHILE (@i < 100000)
BEGIN
INSERT INTO T1 VALUES (@i, CAST(@i AS char(3)))
SELECT @i = @i + 1
END;
COMMIT TRAN;
--Start new connection #2.
DBCC INPUTBUFFER (52);