sys.dm_exec_input_buffer (SQL Bertransaksi)
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 Apakah ID sesi yang menjalankan batch akan dicari. session_idkecil. session_id dapat diperoleh dari objek manajemen dinamis berikut:
request_id Request_id dari sys.dm_exec_requests. request_idint.
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
Pada 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 LIHAT STATUS SERVER (seperti dalam pemicu, prosedur tersimpan, atau fungsi) memunculkan kesalahan izin pada database master.
Pada SQL Database, jika pengguna adalah pemilik database, pengguna akan melihat semua sesi yang dijalankan pada 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.
Keterangan
Fungsi manajemen dinamis ini dapat digunakan bersama dengan sys.dm_exec_sessions atau sys.dm_exec_requests dengan melakukan CROSS APPLY.
Contoh
A. 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