sys.dm_exec_input_buffer (Transact-SQL)
適用対象: SQL Server 2014 Azure SQL データベース Azure Synapse Analytics Analytics Platform System (PDW)
SQL Server のインスタンスに送信されたステートメントに関する情報を返します。
構文
sys.dm_exec_input_buffer ( session_id , request_id )
引数
session_id 検索するバッチを実行しているセッション ID です。 session_id は smallint です。 session_idは次の動的管理オブジェクトから取得できます。
sys.dm_exec_requestsからrequest_idをrequest_idします。 request_id は int です。
返されるテーブル
列名 | データ型 | 説明 |
---|---|---|
event_type | nvarchar (256) | 指定された spid の入力バッファー内のイベントの種類。 |
parameters | smallint | ステートメントに指定されたパラメーター。 |
event_info | nvarchar(max) | 指定された spid の入力バッファー内のステートメントのテキスト。 |
アクセス許可
SQL Server では、ユーザーに VIEW SERVER STATE アクセス許可がある場合、SQL Server のインスタンスで実行中のすべてのセッションが表示されます。それ以外の場合、ユーザーには現在のセッションのみが表示されます。
重要
VIEW SERVER STATE 権限 (トリガー、ストアド プロシージャ、関数など) を持たない SQL Server に対して SQL Server Management Studio の外部でこの DMV を実行すると、マスター データベースでアクセス許可エラーがスローされます。
SQL Database では、ユーザーがデータベース所有者である場合、ユーザーには SQL Database で実行中のすべてのセッションが表示されます。それ以外の場合、ユーザーには現在のセッションのみが表示されます。
重要
所有者のアクセス許可 (トリガー、ストアド プロシージャ、関数など) なしで SQL Server Management Studio の外部でこの DMV を Azure SQL Database に対して実行すると、master データベースに対するアクセス許可エラーがスローされます。
SQL Server 2022 以降でのアクセス許可
サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。
解説
この動的管理機能は、 CROSS APPLY を実行することで、sys.dm_exec_sessionsまたはsys.dm_exec_requestsと組み合わせて使用できます。
例
A. 簡単な例
次の例では、セッション ID (SPID) と要求 ID を関数に渡す方法を示します。
SELECT * FROM sys.dm_exec_input_buffer (52, 0);
GO
B. 追加情報へのクロス適用の使用
次の例では、ユーザー セッションの入力バッファーを一覧表示します。
SELECT es.session_id, ib.event_info
FROM sys.dm_exec_sessions AS es
CROSS APPLY sys.dm_exec_input_buffer(es.session_id, NULL) AS ib
WHERE es.is_user_process = 1;
GO