sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
Aplica-se a: SQL Server 2016 (13.x) e posterior Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Obtém o stmt_sql_handle de uma instrução Transact-SQL em determinado tipo de parametrização (simples ou forçada). Isso permite que você faça referência a consultas armazenadas no Repositório de Consultas usando seus stmt_sql_handle quando você conhece seu texto.
Convenções de sintaxe de Transact-SQL
Sintaxe
sys.fn_stmt_sql_handle_from_sql_stmt
(
'query_sql_text' ,
[ query_param_type
) [;]
Argumentos
query_sql_text
É o texto da consulta no repositório de consultas do qual você deseja o identificador. query_sql_text é um nvarchar(max), sem padrão.
query_param_type
É o tipo de parâmetro da consulta. query_param_type é um tinyint. Os valores possíveis são:
NULL - o padrão é 0
0 – Nenhum
1 - Usuário
2 - Simples
3 - Forçado
Colunas retornadas
A tabela a seguir lista as colunas retornadas sys.fn_stmt_sql_handle_from_sql_stmt
.
Nome da coluna | Type | Descrição |
---|---|---|
statement_sql_handle | varbinary(64) | O identificador SQL. |
query_sql_text | nvarchar(max) | O texto da instrução Transact-SQL. |
query_parameterization_type | tinyint | O tipo de parametrização de consulta. |
Valores do código de retorno
0 (êxito) ou 1 (falha)
Comentários
Permissões
Requer a permissão EXECUTE no banco de dados e a permissão DELETE nas exibições do catálogo do repositório de consultas.
Exemplos
O exemplo a seguir executa uma instrução e, em seguida, usa sys.fn_stmt_sql_handle_from_sql_stmt
para retornar o identificador SQL dessa instrução.
SELECT * FROM sys.databases;
SELECT * FROM sys.fn_stmt_sql_handle_from_sql_stmt('SELECT * FROM sys.databases', NULL);
Use a função para correlacionar dados do Repositório de Consultas com outras exibições de gerenciamento dinâmico. O exemplo a seguir:
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;
Confira também
- 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)
- Exibições de Catálogo do Repositório de Consultas (Transact-SQL)
- Monitorando o desempenho com o repositório de consultas