Compartilhar via


DBCC INPUTBUFFER (Transact-SQL)

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

Ícone de vínculo de tópicoConvençõ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 consulta a seguir retorna request_id:

    SELECT request_id 
    FROM sys.dm_exec_requests 
    WHERE session_id = @@spid
    
  • WITH
    Permite que as 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 seguintes colunas.

Nome da coluna

Tipo de dados

Descrição

EventType

nvarchar(30)

Tipo de evento. Pode ser Evento RPC ou Evento Language. A saída será No Event quando não for detectado nenhum último evento.

Parâmetros

int

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 4000 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.

Permissões

Requer um dos seguintes:

  • O usuário deve ser membro da função de servidor fixa sysadmin.

  • O usuário deve ter a permissão VIEW SERVER STATE.

  • session_id deve ser igual à ID de sessão no qual o comando está sendo executado. Para determinar a ID de sessão, execute a seguinte consulta:

    SELECT @@spid
    

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 T1 (Col1 int, Col2 char(3));
GO
DECLARE @i int;
SELECT @i = 0
BEGIN TRAN
SELECT @i = 0
WHILE (@i < 100000)
BEGIN
INSERT INTO T1 VALUES (@i, CAST(@i AS char(3)))
SELECT @i = @i + 1
END;
COMMIT TRAN;
--Start new connection #2.
DBCC INPUTBUFFER (52);