Partilhar via


sys.dm_exec_input_buffer (Transact-SQL)

Aplica-se a: SQL Server 2014 Banco de Dados Não há suporte. SQL do Azure PDW (Azure Synapse Analytics Não há suporte. Platform System)

Retorna informações sobre instruções enviadas a uma instância do SQL Server.

Sintaxe

sys.dm_exec_input_buffer ( session_id , request_id )

Argumentos

session_id É a ID da sessão que executa o lote a ser pesquisado. session_id é smallint. session_id pode ser obtido nos seguintes objetos de gerenciamento dinâmico:

request_id O request_id de sys.dm_exec_requests. request_id é int.

Tabela retornada

Nome da coluna Tipo de dados Descrição
event_type nvarchar(256) O tipo de evento no buffer de entrada para o spid fornecido.
parameters smallint Quaisquer parâmetros fornecidos para a instrução.
event_info nvarchar(max) O texto da instrução no buffer de entrada para o spid fornecido.

Permissões

No SQL Server, se o usuário tiver a permissão VIEW SERVER STATE, o usuário verá todas as sessões em execução na instância do SQL Server; caso contrário, o usuário verá apenas a sessão atual.

Importante

Executar essa DMV fora do SQL Server Management Studio no SQL Server sem permissões VIEW SERVER STATE (como em um gatilho, procedimento armazenado ou função) gera um erro de permissão no banco de dados mestre.

No Banco de Dados SQL, se o usuário for o proprietário do banco de dados, ele verá todas as sessões em execução no Banco de Dados SQL; caso contrário, o usuário verá apenas a sessão atual.

Importante

Executar essa DMV fora do SQL Server Management Studio no Banco de Dados SQL do Azure sem permissões de proprietário (como em um gatilho, procedimento armazenado ou função) gera um erro de permissão no banco de dados mestre.

Permissões do SQL Server 2022 e posteriores

É necessária a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Comentários

Esta função de gerenciamento dinâmico pode ser usada em conjunto com sys.dm_exec_sessions ou sys.dm_exec_requests fazendo CROSS APPLY.

Exemplos

a. Exemplo simples

O exemplo a seguir demonstra a passagem de uma ID de sessão (SPID) e uma ID de solicitação para a função.

SELECT * FROM sys.dm_exec_input_buffer (52, 0);
GO

B. Usando a aplicação cruzada para informações adicionais

O exemplo a seguir lista o buffer de entrada para sessões de usuário.

SELECT es.session_id, ib.event_info
FROM sys.dm_exec_sessions AS es
CROSS APPLY sys.dm_exec_input_buffer(es.session_id, NULL) AS ib
WHERE es.is_user_process = 1;
GO

Confira também