sys.fn_stmt_sql_handle_from_sql_stmt(Transact-SQL)
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL 데이터베이스 Azure SQL Managed Instance
지정된 매개 변수화 형식(단순 또는 강제)에서 Transact-SQL 문의 stmt_sql_handle 가져옵니다. 이렇게 하면 텍스트를 알 때 해당 stmt_sql_handle 사용하여 쿼리 저장소 저장된 쿼리를 참조할 수 있습니다.
구문
sys.fn_stmt_sql_handle_from_sql_stmt
(
'query_sql_text' ,
[ query_param_type
) [;]
인수
query_sql_text
핸들을 원하는 쿼리 저장소의 쿼리 텍스트입니다. query_sql_text 기본값이 없는 nvarchar(max)입니다.
query_param_type
쿼리의 매개 변수 형식입니다. query_param_type 작은입니다. 가능한 값은 다음과 같습니다.
NULL - 기본값: 0
0 - 없음
1 - 사용자
2 - 단순
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
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;