DBCC INPUTBUFFER (Transact-SQL)

更新 : 2005 年 12 月 5 日

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

トピック リンク アイコン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); 

参照

関連項目

DBCC (Transact-SQL)
sp_who (Transact-SQL)
トレース フラグ (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

変更内容
  • 「結果セット」の説明をわかりやすく変更。
  • 「権限」のセクションに情報を追加。