적용 대상: SQL Server 2016 (13.x) 및 이후 버전
: Azure SQL 데이터베이스,
Azure SQL Managed Instance
,Microsoft Fabric의 SQL 데이터베이스
stmt_sql_handle 지정된 매개 변수화 형식(단순 또는 강제)에서 Transact-SQL 문을 가져옵니다. 텍스트를 알고 있을 때 쿼리 저장소를 사용하여 쿼리 저장소에 저장된 쿼리를 참조할 stmt_sql_handle 수 있습니다.
구문
sys.fn_stmt_sql_handle_from_sql_stmt
(
N'query_sql_text'
, [ query_param_type ]
)
[ ; ]
인수
query_sql_text
쿼리 저장소에서 핸들을 사용할 쿼리의 텍스트입니다. query_sql_text 기본값이 없는 nvarchar(max) 입니다.
query_param_type
쿼리의 매개 변수 형식입니다.
query_param_type 기본값인 NULL입니다. 가능한 값은 다음과 같습니다.
| 가치 | 설명 |
|---|---|
NULL(기본값) |
기본값은 0입니다. |
| 0 | None |
| 1 | 사용자 |
| 2 | Simple |
| 3 | 강제 |
반환된 열
다음 표에서는 반환되는 sys.fn_stmt_sql_handle_from_sql_stmt 열을 나열합니다.
| 열 이름 | Type | 설명 |
|---|---|---|
statement_sql_handle |
varbinary(64) | SQL 핸들입니다. |
query_sql_text |
nvarchar(max) | Transact-SQL 문의 텍스트입니다. |
query_parameterization_type |
tinyint | 쿼리 매개 변수화 형식입니다. |
반환 코드 값
0(성공) 또는 1(실패).
사용 권한
EXECUTE 데이터베이스에 대한 사용 권한 및 DELETE 쿼리 저장소 카탈로그 뷰에 대한 권한이 필요합니다.
예제
다음 예제에서는 문을 실행한 다음 해당 문의 SQL 핸들을 반환하는 데 사용합니다 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);
이 함수를 사용하여 쿼리 저장소 데이터를 다른 동적 관리 뷰와 상호 연결합니다. 다음 예제를 참조하세요.
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;