sp_get_query_template (języka Transact-SQL)
Zwraca wartość sparametryzowana formularzu kwerendy.Zwracane wyniki naśladować wyniki z pomocą sparametryzowanych formularza kwerendy wymuszone parametryzacji.sp_get_query_templatejest używana głównie podczas tworzenia szablonu planu prowadnic.
Składnia
sp_get_query_template
[ @querytext = ] N'query_text'
, @templatetext OUTPUT
, @parameters OUTPUT
Argumenty
'query_text'
Jest kwerendą, dla którego ma być generowany sparametryzowana wersja ."query_text" musi być ujęty w znaki pojedynczego cudzysłowu i poprzedzony przez n specyfikator Unicode.N'query_text" jest wartość przypisaną do @querytext parametru.Jest to typ nvarchar(max).@templatetext
Jest parametrem wyjściowym typu nvarchar(max), pod warunkiem, jak wskazano sparametryzowana formularza z query_text jako literał ciąg .@parameters
Jest parametrem wyjściowym typu nvarchar(max), pod warunkiem wskazane, aby otrzymać literałem ciąg parametru nazwy i typy danych które została sparametryzowana w @templatetext.
Uwagi
sp_get_query_templateZwraca błąd, gdy występują następujące czynności:
Nie parameterize stała wartości literału, w query_text.
query_textma wartość NULL, nie Unicode ciągsyntaktycznie nieprawidłowa, albo nie można skompilować.
Jeśli sp_get_query_template zwraca komunikat o błędzie nie powoduje natomiast zmian wartości @templatetext i @parameters parametrów wyjściowych.
Uprawnienia
Wymaga członkostwa w public rola bazy danych.
Przykłady
Poniższy przykład zwraca sparametryzowana formularza kwerendy zawierającej dwie stała wartości literału.
USE AdventureWorks2008R2;
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;
Oto sparametryzowana wyniki @my_templatetextOUTPUT parametr:
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
Należy zauważyć, że pierwszy stała literału, 2, jest konwertowany na parametr.Literał drugi 400, nie jest konwertowany, ponieważ znajduje się wewnątrz HAVING klauzula.wyniki zwróconych przez sp_get_query_template naśladować sparametryzowana formularza kwerendy, gdy opcja PARAMETRYZACJI ZMIEŃ bazę danych jest zestaw na WYMUSZONY.Aby uzyskać informacje o tym, które zmienne są parametryzowane w tych warunkach, zobacz Parametryzacja wymuszony.
Oto sparametryzowana wyniki @my_parameters OUTPUT parametr:
@0 int
Ostrzeżenie
Kolejność i nazw parametrów w produkcji sp_get_query_template można przełączać między quick-fix engineering, dodatek usługa pack i uaktualnienia do wersja z SQL Server.Uaktualnienia mogą powodować różne zestaw stała literały do sparametryzowana dla tej samej kwerendy i różne odstępy stosowane w wyniki obu parametrów wyjściowych.