sys.fn_stmt_sql_handle_from_sql_stmt (T-SQL)

Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL DatabaseAzure SQL Managed Instance yang lebih baru

Mendapatkan stmt_sql_handle untuk pernyataan Transact-SQL di bawah jenis parameterisasi yang diberikan (sederhana atau dipaksa). Ini memungkinkan Anda untuk merujuk ke kueri yang disimpan di Penyimpanan Kueri dengan menggunakan stmt_sql_handle mereka saat Anda mengetahui teksnya.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

query_sql_text
Adalah teks kueri di penyimpanan kueri yang Ingin Anda tangani. query_sql_text adalah nvarchar(max), tanpa default.

query_param_type
Adalah jenis parameter kueri. query_param_type kecil. Kemungkinan nilai adalah:

  • NULL - default ke 0

  • 0 - Tidak ada

  • 1 - Pengguna

  • 2 - Sederhana

  • 3 - Dipaksa

Kolom yang Dikembalikan

Tabel berikut mencantumkan kolom yang sys.fn_stmt_sql_handle_from_sql_stmt dikembalikan.

Nama kolom Jenis Deskripsi
statement_sql_handle varbinary(64) Handel SQL.
query_sql_text nvarchar(maks) Teks pernyataan Transact-SQL.
query_parameterization_type kecil Jenis parameterisasi kueri.

Mengembalikan nilai kode

0 (keberhasilan) atau 1 (kegagalan)

Keterangan

Izin

Memerlukan izin EXECUTE pada database, dan izin DELETE pada tampilan katalog penyimpanan kueri.

Contoh

Contoh berikut menjalankan pernyataan, lalu menggunakan sys.fn_stmt_sql_handle_from_sql_stmt untuk mengembalikan handel SQL dari pernyataan tersebut.

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

Gunakan fungsi untuk menghubungkan data Penyimpanan Kueri dengan tampilan manajemen dinamis lainnya. Lihat contoh berikut:

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;

Baca juga