Compartilhar via


DBCC INPUTBUFFER (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Exibe a última instrução enviada de um cliente para uma instância do SQL Server.

Convenções de sintaxe Transact-SQL

Sintaxe

DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]

Argumentos

session_id

É a ID da sessão associada a cada conexão primária ativa.

request_id

A solicitação exata (lote) para pesquisar na sessão atual.

A seguinte consulta retorna request_id:

SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;

WITH

Permite que opções sejam especificadas.

  • NO_INFOMSGS

    Suprime todas as mensagens informativas com níveis de severidade de 0 a 10.

Conjuntos de resultados

DBCC INPUTBUFFER retorna um conjunto de linhas com as colunas a seguir.

Nome da coluna Tipo de dados Descrição
EventType nvarchar(30) Tipo de evento. Pode ser Evento de RPC ou Evento de Linguagem. A saída será Nenhum Evento quando não for detectado nenhum último evento.
Parâmetros smallint 0 = Texto

1- n = Parâmetros
EventInfo nvarchar(4000) Para um EventType de RPC, EventInfo contém apenas o nome do procedimento. Para um EventType de Language, são exibidos apenas os primeiros 4.000 caracteres do evento.

Por exemplo, DBCC INPUTBUFFER retorna o conjunto de resultados a seguir quando o último evento no 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.

Observação

Começando pelo SQL Server 2014 (12.x) SP2, use sys.dm_exec_input_buffer para retornar informações sobre as instruções enviadas a uma instância do SQL Server.

Permissões

No SQL Server, é necessário ter a permissão VIEW SERVER STATE ou associação na função de servidor fixa sysadmin.

Sem isso, os usuários só podem exibir o buffer de entrada da própria sessão. Isso significa que session_id deve ser igual à ID de sessão na qual o comando está sendo executado. Para determinar a ID da sessão, execute a seguinte consulta:

SELECT @@spid;

No Banco de Dados SQL, as camadas Premium e Comercialmente Crítico requerem a permissão VIEW DATABASE STATE no banco de dados. No Banco de Dados SQL, as camadas Standard, Básico e Uso Geral requerem a conta de administrador do Banco de Dados SQL.

Exemplos

O exemplo a seguir executa DBCC INPUTBUFFER em uma segunda conexão enquanto uma transação longa é executada em uma conexão 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);

Confira também