Partilhar via


BUFFER DE ENTRADA DBCC (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

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

Transact-SQL convenções de sintaxe

Sintaxe

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

Argumentos

session_id

O ID de sessão associado a cada conexão primária ativa.

request_id

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

A consulta a seguir retorna request_id:

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

COM

Permite que as opções sejam especificadas.

  • NO_INFOMSGS

    Suprime todas as mensagens informativas com níveis de gravidade 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. Isso pode ser de Eventos RPC ou Evento de Idioma. A saída será No Event quando nenhum último evento foi detetado.
Parâmetros pequeno 0 = Texto

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

Por exemplo, DBCC INPUTBUFFER retorna o seguinte conjunto de resultados 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

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

Permissões

O SQL Server requer a permissão de VIEW SERVER STATE ou associação à função de servidor fixa sysadmin.

Sem qualquer um deles, os usuários só podem visualizar o buffer de entrada de sua própria sessão. Isso significa que o session_id deve ser o mesmo que o ID da sessão no qual o comando está sendo executado. Para determinar o ID da sessão. Execute a seguinte consulta:

SELECT @@spid;

As camadas Premium e Business Critical do Banco de Dados SQL exigem a permissão VIEW DATABASE STATE no banco de dados. As camadas Padrão, Básico e de Uso Geral do Banco de Dados SQL exigem 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 está sendo 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);

Ver também