Bagikan melalui


sys.fn_stmt_sql_handle_from_sql_stmt (T-SQL)

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

stmt_sql_handle Mendapatkan untuk pernyataan Transact-SQL di bawah jenis parameterisasi yang diberikan (sederhana atau dipaksakan). Anda bisa merujuk ke kueri yang disimpan di Penyimpanan Kueri dengan menggunakannya stmt_sql_handle saat Anda mengetahui teksnya.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

query_sql_text

Teks kueri di Penyimpanan Kueri yang Anda inginkan untuk menanganinya. query_sql_textadalah nvarchar(max) tanpa default.

query_param_type

Jenis parameter kueri. query_param_typekecil, dengan default NULL. Kemungkinan nilai adalah:

Nilai Deskripsi
NULL (standar) Default ke 0
0 None
1 Pengguna
2 Simple
3 Dipaksa

Kolom yang dikembalikan

Tabel berikut mencantumkan kolom yang sys.fn_stmt_sql_handle_from_sql_stmt dikembalikan.

Nama kolom Tipe 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 (berhasil) atau 1 (kegagalan).

Izin

EXECUTE Memerlukan izin pada database, dan DELETE izin 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
     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;