Compartir a través de


DBCC INPUTBUFFER (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure 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 ]

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);

Consulte también