sp_get_query_template(Transact-SQL)
적용 대상:SQL Server
매개 변수가 있는 형식의 쿼리를 반환합니다. 반환된 결과는 강제 매개 변수화를 사용한 매개 변수가 있는 형식의 쿼리 결과와 비슷합니다. sp_get_query_template 템플릿 계획 지침을 만들 때 주로 사용됩니다.
구문
sp_get_query_template
[ @querytext = ] N'query_text'
, @templatetext OUTPUT
, @parameters OUTPUT
인수
'query_text'
매개 변수가 있는 버전을 생성할 쿼리입니다. 'query_text'은 작은따옴표로 묶어야 하며 N 유니코드 지정자 앞에 와야 합니다. N'query_text'은 매개 변수에 @querytext 할당된 값입니다. nvarchar(max) 형식입니다.
@templatetext
매개 변수가 있는 형식의 query_text 문자열 리터럴로 수신하기 위해 표시된 대로 nvarchar(max) 형식의 출력 매개 변수입니다.
@parameters
매개 변수 이름 및 매개 변수가 @templatetext있는 데이터 형식의 문자열 리터럴을 수신하기 위해 표시된 대로 제공된 nvarchar(max) 형식의 출력 매개 변수입니다.
설명
다음 경우 sp_get_query_template은 오류를 반환합니다.
query_text 상수 리터럴 값을 매개 변수화하지 않습니다.
query_text NULL이거나 유니코드 문자열이 아니거나 구문적으로 유효하지 않거나 컴파일할 수 없습니다.
sp_get_query_template 오류를 반환하는 경우 및 @parameters 출력 매개 변수의 @templatetext 값을 수정하지 않습니다.
사용 권한
public 데이터베이스 역할의 멤버여야 합니다.
예
다음 예제에서는 두 개의 상수 리터럴 값을 포함하는 쿼리의 매개 변수가 있는 형식을 반환합니다.
USE AdventureWorks2022;
GO
DECLARE @my_templatetext nvarchar(max)
DECLARE @my_parameters nvarchar(max)
EXEC sp_get_query_template
N'SELECT pi.ProductID, SUM(pi.Quantity) AS Total
FROM Production.ProductModel pm
INNER JOIN Production.ProductInventory pi
ON pm.ProductModelID = pi.ProductID
WHERE pi.ProductID = 2
GROUP BY pi.ProductID, pi.Quantity
HAVING SUM(pi.Quantity) > 400',
@my_templatetext OUTPUT,
@my_parameters OUTPUT;
SELECT @my_templatetext;
SELECT @my_parameters;
매개 변수의 매개 변수가 있는 결과는 다음과 같습니다.@my_templatetext``OUTPUT
select pi . ProductID , SUM ( pi . Quantity ) as Total
from Production . ProductModel pm
inner join Production . ProductInventory pi
on pm . ProductModelID = pi . ProductID
where pi . ProductID = @0
group by pi . ProductID , pi . Quantity
having SUM ( pi . Quantity ) > 400
첫 번째 상수 리터럴 2
은 매개 변수로 변환됩니다. 두 번째 리터럴 400
은 절 내에 HAVING
있으므로 변환되지 않습니다. SP_GET_QUERY_TEMPLATE 반환된 결과는 ALTER DATABASE의 PARAMETERIZATION 옵션이 FORCED로 설정된 경우 매개 변수가 있는 형식의 쿼리를 모방합니다.
매개 변수의 매개 변수가 있는 결과는 다음과 같습니다.@my_parameters OUTPUT
@0 int
참고 항목
sp_get_query_template 출력에서 매개 변수의 순서와 이름은 SQL Server의 빠른 수정 엔지니어링, 서비스 팩 및 버전 업그레이드 간에 변경 될 수 있습니다. 업그레이드를 통해 동일한 쿼리에 대해 다른 상수 리터럴 집합이 매개 변수화되고 두 출력 매개 변수의 결과에 서로 다른 간격이 적용될 수도 있습니다.
참고 항목
시스템 저장 프로시저(Transact-SQL)
데이터베이스 엔진 저장 프로시저(Transact-SQL)
계획 지침을 사용하여 쿼리 매개 변수화 동작 지정
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기