Megosztás a következőn keresztül:


sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)

Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Lekéri egy stmt_sql_handle Transact-SQL utasítást a megadott paraméterezési típus alatt (egyszerű vagy kényszerített). A lekérdezéstárban tárolt lekérdezésekre a szöveg ismeretében használhatja őket stmt_sql_handle .

Transact-SQL szintaxis konvenciók

Szemantika

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

Arguments

query_sql_text

Annak a lekérdezésnek a szövege a lekérdezéstárban, amelyhez a leírót használni szeretné. query_sql_textnvarchar(max) alapértelmezett érték nélkül.

query_param_type

A lekérdezés paramétertípusa. query_param_typea tinyint, alapértelmezés szerint .NULL A lehetséges értékek a következők:

Érték Description
NULL (alapértelmezett) Alapértelmezett érték: 0
0 None
1 User
2 Simple
3 Erőltetett

Visszaadott oszlopok

Az alábbi táblázat a visszaadott sys.fn_stmt_sql_handle_from_sql_stmt oszlopokat sorolja fel.

Oszlop név Típus Description
statement_sql_handle varbinary(64) Az SQL-leíró.
query_sql_text nvarchar(max) A Transact-SQL utasítás szövege.
query_parameterization_type tinyint A lekérdezésparaméterezés típusa.

Kódértékek visszaadása

0 (sikeres) vagy 1 (hiba).

Permissions

Engedélyre van szükség az adatbázisban, és EXECUTE engedélyre van szükség DELETE a Lekérdezéstár katalógusnézeteihez.

Példák

Az alábbi példa egy utasítást hajt végre, majd az utasítás SQL-leírójának visszaadására használja sys.fn_stmt_sql_handle_from_sql_stmt .

SELECT *
FROM sys.databases;

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

A függvény használatával korrelálhatja a lekérdezéstár adatait más dinamikus felügyeleti nézetekkel. A következő példa:

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;