Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Azure SQL Database
AzureSQL Managed Instance
SQL database in Microsoft Fabric
Obtém a stmt_sql_handle instrução for a Transact-SQL sob o tipo de parametrização fornecido (simples ou forçado). Você pode fazer referência a consultas armazenadas no Repositório de Consultas usando o texto delas quando souber stmt_sql_handle .
Transact-SQL convenções de sintaxe
Sintaxe
sys.fn_stmt_sql_handle_from_sql_stmt
(
N'query_sql_text'
, [ query_param_type ]
)
[ ; ]
Arguments
query_sql_text
O texto da consulta no Repositório de Consultas do qual você deseja o identificador. query_sql_text é nvarchar(max) sem padrão.
query_param_type
O tipo de parâmetro da consulta.
query_param_type é minúsculo, com um padrão de NULL. Os valores possíveis são:
| Valor | Description |
|---|---|
NULL (padrão) |
O padrão é 0 |
| 0 | Nenhum |
| 1 | User |
| 2 | Simple |
| 3 | Forçado |
Colunas retornadas
A tabela a seguir lista as colunas que sys.fn_stmt_sql_handle_from_sql_stmt retornam.
| Nome da coluna | Tipo | Description |
|---|---|---|
statement_sql_handle |
varbinary(64) | O identificador SQL. |
query_sql_text |
nvarchar (máx.) | O texto da declaração Transact-SQL. |
query_parameterization_type |
tinyint | O tipo de parametrização da consulta. |
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Permissions
Requer EXECUTE permissão no banco de dados e DELETE permissão nas exibições de catálogo do Repositório de Consultas.
Examples
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
INNER JOIN sys.query_store_query AS q
ON qt.query_text_id = q.query_text_id
CROSS APPLY sys.fn_stmt_sql_handle_from_sql_stmt(qt.query_sql_text, NULL) AS fn_handle_from_stmt
INNER JOIN sys.dm_exec_query_stats AS qs
ON fn_handle_from_stmt.statement_sql_handle = qs.statement_sql_handle;
Conteúdo relacionado
- 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 do catálogo do Repositório de Consultas (Transact-SQL)
- Monitorar o desempenho usando o Repositório de Consultas