sys.dm_exec_input_buffer (Transact-SQL)

Se aplica a: SQL Server 2014 Azure SQL DatabaseNo compatible. Azure Synapse Analytics Analytics No compatible. Platform System (PDW)

Devuelve información sobre las instrucciones enviadas a una instancia de SQL Server.

Sintaxis

sys.dm_exec_input_buffer ( session_id , request_id )

Argumentos

session_id Es el identificador de sesión que ejecuta el lote que se va a buscar. session_id es smallint. session_id puede obtenerse a partir de los siguientes objetos de administración dinámica:

request_id el request_id de sys.dm_exec_requests. request_id es int.

Tabla devuelta

Nombre de la columna Tipo de datos Descripción
event_type nvarchar(256) Tipo de evento en el búfer de entrada para el spid especificado.
parameters smallint Todos los parámetros proporcionados para la instrucción .
event_info nvarchar(max) Texto de la instrucción en el búfer de entrada del spid especificado.

Permisos

En SQL Server, si el usuario tiene el permiso VIEW SERVER STATE, el usuario verá todas las sesiones en ejecución en la instancia de SQL Server; De lo contrario, el usuario verá solo la sesión actual.

Importante

Al ejecutar esta DMV fuera de SQL Server Management Studio en SQL Server sin permisos VIEW SERVER STATE (por ejemplo, en un desencadenador, procedimiento almacenado o función) se produce un error de permiso en la base de datos maestra.

En SQL Database, si el usuario es el propietario de la base de datos, el usuario verá todas las sesiones en ejecución en SQL Database; De lo contrario, el usuario verá solo la sesión actual.

Importante

La ejecución de esta DMV fuera de SQL Server Management Studio en Azure SQL Database sin permisos de propietario (por ejemplo, en un desencadenador, procedimiento almacenado o función) produce un error de permiso en la base de datos maestra.

Permisos para SQL Server 2022 y versiones posteriores

Requiere el permiso VER ESTADO DE RENDIMIENTO DEL SERVIDOR en el servidor.

Comentarios

Esta función de administración dinámica se puede usar junto con sys.dm_exec_sessions o sys.dm_exec_requests mediante CROSS APPLY.

Ejemplos

A. Ejemplo sencillo

En el ejemplo siguiente se muestra cómo pasar un identificador de sesión (SPID) y un identificador de solicitud a la función.

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

B. Uso de la aplicación cruzada a información adicional

En el ejemplo siguiente se muestra el búfer de entrada para las sesiones de usuario.

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

Consulte también