DBCC INPUTBUFFER (Transact-SQL)
Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Muestra la última instrucción enviada desde un cliente a una instancia de SQL Server.
Convenciones de sintaxis de Transact-SQL
Sintaxis
DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.
Argumentos
session_id
El id. de sesión asociado a cada conexión principal activa.
id_de_solicitud
La solicitud exacta (en lote) que se buscará en la sesión actual.
La consulta siguiente devuelve id_de_solicitud:
SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;
WITH
Habilita la especificación de opciones.
NO_INFOMSGS
Suprime todos los mensajes informativos con niveles de gravedad entre 0 y 10.
Conjuntos de resultados
DBCC INPUTBUFFER
devuelve un conjunto de filas con las siguientes columnas.
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
EventType | nvarchar(30) | Tipo de evento. Puede ser RPC Event o Language Event. La salida será No Event si no se detectó el último evento. |
Parámetros | smallint | 0 = Texto 1- n = Parámetros |
EventInfo | nvarchar(4000) | En un argumento EventType de tipo RPC, EventInfo contiene solo el nombre del procedimiento. Si el valor de EventType es Language, solo se muestran los primeros 4000 caracteres del evento. |
Por ejemplo, DBCC INPUTBUFFER
devuelve el siguiente conjunto de resultados cuando el último evento del búfer es 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 partir de SQL Server 2014 (12.x) SP2, use sys.dm_exec_input_buffer para devolver información sobre las instrucciones enviadas a una instancia de SQL Server.
Permisos
SQL Server requiere el permiso VIEW SERVER STATE o la pertenencia al rol fijo de servidor sysadmin.
Sin ninguno de estos, los usuarios solo pueden ver el búfer de entrada de su propia sesión. Esto significa que session_id debe ser el mismo que el identificador de sesión en el que se ejecuta el comando. Para determinar el id. de sesión, ejecute la siguiente consulta:
SELECT @@spid;
En los niveles Premium y Crítico para la empresa para SQL Database se necesita el permiso VIEW DATABASE STATE en la base de datos. Los niveles Estándar, Básico y De uso general para SQL Database requieren la cuenta de administrador de SQL Database.
Ejemplos
En el ejemplo siguiente se ejecuta DBCC INPUTBUFFER
en una segunda conexión mientras una transacción larga se ejecuta en una conexión anterior.
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);