Bagikan melalui


DBCC INPUTBUFFER (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

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 ]

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 peristiwa yang ditampilkan.

Misalnya, DBCC INPUTBUFFER mengembalikan hasil berikut yang ditetapkan saat peristiwa terakhir dalam 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;

Tingkat SQL Database Premium dan Business Critical memerlukan izin TAMPILKAN STATUS DATABASE dalam database. Tingkat Standar SQL Database, 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