Aracılığıyla paylaş


sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

stmt_sql_handle Verilen parametreleştirme türü (basit veya zorlamalı) altında bir Transact-SQL deyimi için değerini alır. Metinlerini bildiğinizde sorgularını kullanarak Sorgu Deposu'nda depolanan sorgulara stmt_sql_handle başvurabilirsiniz.

Transact-SQL söz dizimi kuralları

Sözdizimi

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

Arguments

query_sql_text

Sorgu Deposu'ndaki tanıtıcısını istediğiniz sorgu metni. query_sql_textvarsayılan olmayan nvarchar(max) değeridir.

query_param_type

Sorgunun parametre türü. query_param_type, varsayılan değeri olan tinyint'tirNULL. Olası değerler şunlardır:

Değer Description
NULL (varsayılan) Varsayılan değer: 0
0 Hiç kimse
1 User
2 Simple
3 Zorla

Döndürülen sütunlar

Aşağıdaki tabloda, döndüren sys.fn_stmt_sql_handle_from_sql_stmt sütunlar listelenir.

Sütun adı Türü Description
statement_sql_handle varbinary(64) SQL tanıtıcısı.
query_sql_text nvarchar(max) Transact-SQL deyiminin metni.
query_parameterization_type tinyint Sorgu parametreleştirme türü.

Dönüş kodu değerleri

0 (başarı) veya 1 (başarısızlık).

Permissions

EXECUTE Veritabanında izin ve DELETE Sorgu Deposu katalog görünümlerinde izin gerektirir.

Örnekler

Aşağıdaki örnek bir deyimi yürütür ve ardından bu deyimin SQL tanıtıcısını döndürmek için kullanır 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);

Sorgu Deposu verilerini diğer dinamik yönetim görünümleriyle ilişkilendirmek için işlevini kullanın. Aşağıdaki örnek:

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;