次の方法で共有


sys.dm_exec_input_buffer (Transact-SQL)

適用対象: SQL Server 2014 Azure SQL Database サポートされていません。 Azure Synapse Analytics サポートされていません。 Analytics Platform System (PDW)

SQL Server のインスタンスに送信されたステートメントに関する情報を返します。

構文

sys.dm_exec_input_buffer ( session_id , request_id )

引数

session_id 検索するバッチを実行しているセッション ID です。 session_idsmallint です。 session_idは次の動的管理オブジェクトから取得できます。

sys.dm_exec_requestsからrequest_idをrequest_idします。 request_idint です。

返されるテーブル

列名 データ型 説明
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

参照