sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Database Azure SQL Managed Instance
Obtiene el stmt_sql_handle de una instrucción Transact-SQL bajo el tipo de parametrización especificado (simple o forzado). Esto le permite hacer referencia a las consultas almacenadas en el Almacén de consultas mediante su stmt_sql_handle cuando conoce su texto.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sys.fn_stmt_sql_handle_from_sql_stmt
(
'query_sql_text' ,
[ query_param_type
) [;]
Argumentos
query_sql_text
Es el texto de la consulta en el almacén de consultas del que desea controlar. query_sql_text es nvarchar(max), sin ningún valor predeterminado.
query_param_type
Es el tipo de parámetro de la consulta. query_param_type es un minúsculo. Los valores posibles son:
NULL: el valor predeterminado es 0.
0 - Ninguna
1 - Usuario
2 - Simple
3 - Forzado
Columnas devueltas
En la tabla siguiente se enumeran las columnas que sys.fn_stmt_sql_handle_from_sql_stmt
devuelven.
Nombre de la columna | Tipo | Descripción |
---|---|---|
statement_sql_handle | varbinary(64) | Identificador SQL. |
query_sql_text | nvarchar(max) | Texto de la instrucción Transact-SQL. |
query_parameterization_type | tinyint | Tipo de parametrización de consulta. |
Valores de código de retorno
0 (correcto) o 1 (error)
Comentarios
Permisos
Requiere el permiso EXECUTE en la base de datos y el permiso DELETE en las vistas de catálogo del almacén de consultas.
Ejemplos
En el ejemplo siguiente se ejecuta una instrucción y, a continuación, se usa sys.fn_stmt_sql_handle_from_sql_stmt
para devolver el identificador SQL de esa instrucción.
SELECT * FROM sys.databases;
SELECT * FROM sys.fn_stmt_sql_handle_from_sql_stmt('SELECT * FROM sys.databases', NULL);
Use la función para correlacionar Almacén de consultas datos con otras vistas de administración dinámica. En el ejemplo siguiente:
SELECT qt.query_text_id, q.query_id, qt.query_sql_text, qt.statement_sql_handle,
q.context_settings_id, qs.statement_context_id
FROM sys.query_store_query_text AS qt
JOIN sys.query_store_query AS q
ON qt.query_text_id = q.query_id
CROSS APPLY sys.fn_stmt_sql_handle_from_sql_stmt (qt.query_sql_text, null) AS fn_handle_from_stmt
JOIN sys.dm_exec_query_stats AS qs
ON fn_handle_from_stmt.statement_sql_handle = qs.statement_sql_handle;
Consulte también
- sp_query_store_force_plan (Transact-SQL)
- sp_query_store_remove_plan (Transact-SQL)
- sp_query_store_unforce_plan (Transact-SQL)
- sp_query_store_reset_exec_stats (Transact-SQL)
- sp_query_store_flush_db (Transact-SQL)
- sp_query_store_remove_query (Transact-SQL)
- Vistas de catálogo del almacén de datos de consultas (Transact-SQL)
- Supervisar el rendimiento mediante el Almacén de consultas