Delen via


sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)

Van toepassing op: SQL Server 2016 (13.x) en latere versies van Azure SQL DatabaseAzure SQL Managed Instance

Hiermee haalt u de stmt_sql_handle voor een Transact-SQL instructie onder het opgegeven parameterisatietype (eenvoudig of geforceerd). U kunt verwijzen naar query's die zijn opgeslagen in de Query Store met behulp van de stmt_sql_handle query's wanneer u hun tekst kent.

Transact-SQL syntaxis-conventies

Syntaxis

sys.fn_stmt_sql_handle_from_sql_stmt
(
    N'query_sql_text'
    , [ query_param_type ]
)
[ ; ]

Arguments

query_sql_text

De tekst van de query in de Query Store waarvan u de handle wilt gebruiken. query_sql_text is nvarchar(max) zonder standaardwaarde.

query_param_type

Het parametertype van de query. query_param_type is klein, met een standaardwaarde van NULL. Mogelijke waarden zijn:

Waarde Description
NULL (standaard) Standaard ingesteld op 0
0 Geen
1 User
2 Simple
3 Gedwongen

Geretourneerde kolommen

De volgende tabel bevat de kolommen die sys.fn_stmt_sql_handle_from_sql_stmt worden geretourneerd.

Kolomnaam Typologie Description
statement_sql_handle varbinary(64) De SQL-ingang.
query_sql_text nvarchar(max) De tekst van de instructie Transact-SQL.
query_parameterization_type tinyint Het queryparameterisatietype.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Permissions

Vereist EXECUTE machtigingen voor de database en DELETE machtigingen voor de catalogusweergaven van Query Store.

Voorbeelden

In het volgende voorbeeld wordt een instructie uitgevoerd en vervolgens gebruikt sys.fn_stmt_sql_handle_from_sql_stmt om de SQL-ingang van die instructie te retourneren.

SELECT *
FROM sys.databases;

SELECT *
FROM sys.fn_stmt_sql_handle_from_sql_stmt('SELECT * FROM sys.databases', NULL);

Gebruik de functie om Query Store-gegevens te correleren met andere dynamische beheerweergaven. Het volgende voorbeeld:

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;