DBCC INPUTBUFFER (Transact-SQL)
Si applica a: SQL Server Azure SQL DatabaseIstanza gestita di SQL di Azure
Visualizza l'ultima istruzione inviata da un client a un'istanza di SQL Server.
Convenzioni della sintassi Transact-SQL
Sintassi
DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]
Nota
Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.
Argomenti
session_id
ID sessione associato a ogni connessione primaria attiva.
request_id
Richiesta esatta (batch) da cercare all'interno della sessione corrente.
La query seguente restituisce request_id:
SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;
WITH
Consente di specificare opzioni.
NO_INFOMSGS
Evita la visualizzazione di tutti i messaggi informativi con livello di gravità compreso tra 0 e 10.
Set di risultati
DBCC INPUTBUFFER
restituisce un set di righe con le colonne seguenti.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
EventType | nvarchar(30) | Tipo di evento. Può corrispondere a RPC Event o Language Event. Se non viene rilevato un ultimo evento, l'output sarà No Event. |
Parameters | smallint | 0 = Testo 1- n = Parametri |
EventInfo | nvarchar(4000) | Se il valore della colonna EventType è RPC Event, EventInfo contiene solo il nome della procedura. Se EventType corrisponde a Language Event, vengono visualizzati solo i primi 4000 caratteri dell'evento. |
Ad esempio, DBCC INPUTBUFFER
restituisce il set di risultati seguente quando l'ultimo evento nel buffer è 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.
Nota
A partire da SQL Server 2014 (12.x) SP2, usare sys.dm_exec_input_buffer per restituire informazioni sulle istruzioni inviate a un'istanza di SQL Server.
Autorizzazioni
SQL Server richiede l'autorizzazione VIEW SERVER STATE o l'appartenenza al ruolo predefinito del server sysadmin.
Senza questi elementi, gli utenti possono visualizzare solo il buffer di input della propria sessione. Ciò significa che session_id deve corrispondere all'ID della sessione in cui è in esecuzione il comando. Per determinare l'ID sessione. Eseguire la query seguente:
SELECT @@spid;
database SQL livelli Premium e business critical richiedono l'autorizzazione VIEW DATABASE STATE nel database. database SQL livelli Standard, Basic e per utilizzo generico richiedono l'account amministratore database SQL.
Esempi
Nell'esempio seguente viene eseguito DBCC INPUTBUFFER
in una seconda connessione durante una transazione di lunga durata su una connessione precedente.
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);