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 這是執行要查閱之批次的作業階段識別碼。 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 實例上看到所有執行中的會話;否則,使用者只會看到目前的會話。
重要
在 SQL Server Management Studio 外部針對沒有 VIEW SERVER STATE 許可權的 SQL Server 執行此 DMV(例如在觸發程式、預存程式或函式中),會在 master 資料庫上擲回許可權錯誤。
在 SQL 資料庫,如果使用者是資料庫擁有者,則使用者會看到 SQL 資料庫 上所有執行中的會話;否則,使用者只會看到目前的會話。
重要
在 SQL Server Management Studio 外部對 Azure SQL 資料庫 執行此 DMV,而沒有擁有者許可權(例如在觸發程式、預存程式或函式中),會在 master 資料庫上擲回許可權錯誤。
SQL Server 2022 和更新版本的權限
需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。
備註
透過執行 CROSS APPLY,此動態管理函式可以與sys.dm_exec_sessions或sys.dm_exec_requests搭配使用。
範例
A. 簡單範例
下列範例示範如何將會話標識碼 (SPID) 和要求標識碼傳遞至函式。
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