sys.dm_exec_input_buffer (T-SQL)

Berlaku untuk: SQL Server 2014 Azure SQL DatabaseNot supported.Azure Synapse Analytics Analytics Not supported. 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

Lihat Juga