DBCC INPUTBUFFER (Transact-SQL)

Berlaku untuk:SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Menampilkan pernyataan terakhir yang dikirim dari klien ke instans SQL Server.

Konvensi sintaks Transact-SQL

Sintaks

DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

session_id

ID sesi yang terkait dengan setiap koneksi utama aktif.

request_id

Permintaan yang tepat (batch) untuk dicari dalam sesi saat ini.

Kueri berikut mengembalikan request_id:

SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;

WITH

Mengaktifkan opsi yang akan ditentukan.

  • NO_INFOMSGS

    Menekan semua pesan informasi yang memiliki tingkat keparahan dari 0 hingga 10.

Tataan hasil

DBCC INPUTBUFFER mengembalikan set baris dengan kolom berikut.

Nama kolom Jenis data Deskripsi
EventType nvarchar(30) Jenis peristiwa. Ini bisa menjadi Peristiwa RPC atau Peristiwa Bahasa. Output akan menjadi Tidak Ada Peristiwa ketika tidak ada peristiwa terakhir yang terdeteksi.
Parameter smallint 0 = Teks

1- n = Parameter
EventInfo nvarchar(4000) Untuk EventType RPC, EventInfo hanya berisi nama prosedur. Untuk EventType bahasa, hanya 4000 karakter pertama acara yang ditampilkan.

Misalnya, DBCC INPUTBUFFER mengembalikan tataan hasil berikut saat peristiwa terakhir di buffer adalah DBCC INPUTBUFFER (11).

EventType      Parameters EventInfo
-------------- ---------- ---------------------
Language Event 0          DBCC INPUTBUFFER (11)
  
(1 row(s) affected)
  
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Catatan

Dimulai dengan SQL Server 2014 (12.x) SP2, gunakan sys.dm_exec_input_buffer untuk mengembalikan informasi tentang pernyataan yang dikirimkan ke instans SQL Server.

Izin

SQL Server memerlukan izin VIEW SERVER STATE, atau keanggotaan dalam peran server tetap sysadmin.

Tanpa salah satu dari ini, pengguna hanya dapat melihat buffer input sesi mereka sendiri. Itu berarti session_id harus sama dengan ID sesi tempat perintah dijalankan. Untuk menentukan ID sesi. jalankan kueri berikut:

SELECT @@spid;

SQL Database tingkat Premium dan Bisnis Kritis memerlukan izin TAMPILKAN STATUS DATABASE dalam database. SQL Database tingkat Standar, Dasar, dan Tujuan Umum memerlukan akun admin SQL Database.

Contoh

Contoh berikut berjalan DBCC INPUTBUFFER pada koneksi kedua saat transaksi panjang berjalan pada koneksi sebelumnya.

CREATE TABLE dbo.T1 (Col1 INT, Col2 CHAR(3));
GO

DECLARE @i INT = 0;

BEGIN TRANSACTION

SET @i = 0;

WHILE (@i < 100000)
BEGIN
    INSERT INTO dbo.T1
    VALUES (@i, CAST(@i AS CHAR(3)));
    SET @i += 1;
END;

COMMIT TRANSACTION;

--Start new connection #2.
DBCC INPUTBUFFER (52);

Lihat juga