共用方式為


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

另請參閱