다음을 통해 공유


sys.fn_stmt_sql_handle_from_sql_stmt(Transact-SQL)

적용 대상: SQL Server 2016 (13.x) 및 이후 버전: Azure SQL 데이터베이스,Azure SQL Managed Instance,Microsoft Fabric의 SQL 데이터베이스

stmt_sql_handle 지정된 매개 변수화 형식(단순 또는 강제)에서 Transact-SQL 문을 가져옵니다. 텍스트를 알고 있을 때 쿼리 저장소를 사용하여 쿼리 저장소에 저장된 쿼리를 참조할 stmt_sql_handle 수 있습니다.

Transact-SQL 구문 표기 규칙

구문

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;