sp_get_query_template (Transact-SQL)
Zwraca wartość sparametryzowana postaci kwerendy.The results returned mimic the parameterized form of a query that results from using forced parameterization.sp_get_query_template is used primarily when you create TEMPLATE plan guides.
sp_get_query_template
[ @querytext = ] N'query_text'
, @templatetext OUTPUT
, @parameters OUTPUT
Argumenty
'query_text'
Jest kwerenda, dla którego ma być generowany sparametryzowana wersja. 'query_text"muszą być ujęte w pojedynczy cudzysłów i być poprzedzony przez określenie N standardu Unicode.N 'query_text"jest to wartość przypisana do parametru @ querytext. Jest to typ nvarchar(max).@ templatetext
Jest parametrem dane wyjściowe tego typu nvarchar(max), pod warunkiem że wskazane sparametryzowana formularza z query_text postać literału ciąg.Parametry @
Jest parametrem dane wyjściowe tego typu nvarchar(max), pod warunkiem że wskazane odbierania literał ciąg typów parametru nazw i danych, które mają zostać sparametryzowana w @ templatetext.
Remarks
sp_get_query_template zwraca błąd, gdy wystąpią następujące czynności:
Nie natomiast parameterize stała wartości literału, w query_text.
query_text ma wartość NULL, nie ciąg Unicode, syntaktycznie nieprawidłowa, albo nie można skompilować.
Jeśli sp_get_query_template zwraca błąd, nie modyfikuje wartości parametrów wyjściowych parametrów @ i @ templatetext.
Uprawnienia
Wymaga członkostwo w rola bazy danych publicznych.
Przykłady
W poniższym przykładzie są zwracane sparametryzowana formę kwerendy zawierającej dwie stała wartości literałów.
USE AdventureWorks;
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;
Here are the parameterized results of the @my\_templatetextOUTPUT parameter:
Wybierz pi.IDProduktu, Suma (pi.Ilość) jako suma
z produkcji.ProductModel pm
łączyć wewnętrzne produkcji.Pi ProductInventory
na pm.ProductModelID = pi.IDProduktu
w przypadku gdy pi.IDProduktu = @ 0
Grupa przez pi.IDProduktu, pi.Ilość
o SUM (pi.Ilość) > 400
Należy zauważyć, że pierwsza stała literału, 2, jest konwertowany na parametr. Literał drugi 400, nie jest konwertowany, ponieważ znajduje się wewnątrz HAVING Klauzula. Computed Column InteroperabilityIn Parametryzacja wymuszony and later, functions have the following properties.
Poniżej przedstawiono wyniki sparametryzowana @my\_parameters OUTPUT parametr:
@0 int
Uwaga
W zamówieniu, jak i nazw parametrów w wyniku sp_get_query_template można przełączać między quick-fix engineering, dodatek usługa pack i uaktualnień wersja SQL Server. Local data access is allowed in deterministic functions.