DBCC INPUTBUFFER (Transact-SQL)
Visualizza l'ultima istruzione inviata da un client a un'istanza di Microsoft SQL Server.
Sintassi
DBCC INPUTBUFFER (session_id [ , request_id ])
[WITH NO_INFOMSGS ]
Argomenti
session_id
ID della sessione associata a ogni connessione principale attiva.request_id
Richiesta (batch) da cercare nella 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
L'istruzione DBCC INPUTBUFFER restituisce un set di righe che include 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. |
Parametri |
smallint |
0 = Testo 1- n = Parametri |
EventInfo |
nvarchar(4000) |
Se il valore della colonna EventType è RPC, EventInfo visualizza solo il nome della procedura. Se EventType corrisponde a Language Event, vengono visualizzati solo i primi 4000 caratteri dell'evento. |
Se, ad esempio, l'ultimo evento del buffer è DBCC INPUTBUFFER(11), DBCC INPUTBUFFER restituisce il set di risultati seguente.
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.
Autorizzazioni
È richiesta una delle condizioni seguenti:
L'utente deve essere membro del ruolo predefinito del server sysadmin.
L'utente deve disporre di autorizzazione VIEW SERVER STATE.
session_id deve corrispondere all'ID di sessione con cui il comando è in esecuzione. Per determinare l'ID di sessione, eseguire la query seguente:
SELECT @@spid;
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 TRAN
SET @i = 0;
WHILE (@i < 100000)
BEGIN
INSERT INTO dbo.T1 VALUES (@i, CAST(@i AS char(3)));
SET @i += 1;
END;
COMMIT TRAN;
--Start new connection #2.
DBCC INPUTBUFFER (52);