sys.dm_exec_input_buffer (T-SQL)
Berlaku untuk: SQL Server 2014 Azure SQL Database Azure Synapse Analytics Analytics Platform System (PDW)
Mengembalikan informasi tentang pernyataan yang dikirimkan ke instans SQL Server.
Sintaks
sys.dm_exec_input_buffer ( session_id , request_id )
Argumen
session_id Adalah ID sesi yang menjalankan batch yang akan dicari. session_id kecil. session_id dapat diperoleh dari objek manajemen dinamis berikut:
request_id Request_id dari sys.dm_exec_requests. request_id int.
Tabel Dikembalikan
Nama kolom | Jenis data | Deskripsi |
---|---|---|
event_type | nvarchar(256) | Jenis peristiwa dalam buffer input untuk spid yang diberikan. |
parameter | smallint | Parameter apa pun yang disediakan untuk pernyataan tersebut. |
event_info | nvarchar(maks) | Teks pernyataan dalam buffer input untuk spid yang diberikan. |
Izin
Di SQL Server, jika pengguna memiliki izin VIEW SERVER STATE, pengguna akan melihat semua sesi yang dijalankan pada instans SQL Server; jika tidak, pengguna hanya akan melihat sesi saat ini.
Penting
Menjalankan DMV ini di luar SQL Server Management Studio terhadap SQL Server tanpa izin VIEW SERVER STATE (seperti dalam pemicu, prosedur tersimpan, atau fungsi) memunculkan kesalahan izin pada database master.
Di SQL Database, jika pengguna adalah pemilik database, pengguna akan melihat semua sesi yang dijalankan di SQL Database; jika tidak, pengguna hanya akan melihat sesi saat ini.
Penting
Menjalankan DMV ini di luar SQL Server Management Studio terhadap Azure SQL Database tanpa izin pemilik (seperti dalam pemicu, prosedur tersimpan, atau fungsi) memunculkan kesalahan izin pada database master.
Izin untuk SQL Server 2022 dan yang lebih baru
Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.
Keterangan
Fungsi manajemen dinamis ini dapat digunakan bersama dengan sys.dm_exec_sessions atau sys.dm_exec_requests dengan melakukan CROSS APPLY.
Contoh
J. Contoh sederhana
Contoh berikut menunjukkan meneruskan ID sesi (SPID) dan ID permintaan ke fungsi.
SELECT * FROM sys.dm_exec_input_buffer (52, 0);
GO
B. Menggunakan cross apply untuk informasi tambahan
Contoh berikut mencantumkan buffer input untuk sesi pengguna.
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