Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Egy lekérdezés paraméteres formáját adja vissza. A visszaadott eredmények a kényszerített paraméterezésből származó lekérdezés paraméteres formáját utánozzák.
sp_get_query_template elsősorban TEMPLATE terv segédvonalak létrehozásakor használatos.
Transact-SQL szintaxis konvenciói
Szintaxis
sp_get_query_template
[ @querytext = ] N'querytext'
, @templatetext OUTPUT
, @parameters OUTPUT
[ ; ]
Érvek
Fontos
A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.
[ @querytext = ] N'querytext'
Az a lekérdezés, amelyhez a paraméteres verziót létre kell hozni.
@querytextnvarchar(max), és egyetlen idézőjelbe kell foglalnia, és a Unicode-N meg kell előznie.
@templatetext
A megadott nvarchar(max)típusú OUTPUT paraméter a megadott módon, a @querytext paraméteres formájának sztringkonstansként való fogadásához.
@parameters
A megadott nvarchar(max)típusú kimeneti paraméter a megadott módon, a @templatetextparaméternevek és adattípusok sztringkonstansának fogadásához.
Megjegyzések
sp_get_query_template a következő esetekben ad vissza hibát:
- Nem paraméterez állandó konstans értékeket @querytext.
-
@querytext
NULL, nem Unicode-sztring, szintaktikailag érvénytelen, vagy nem fordítható le.
Ha sp_get_query_template hibát ad vissza, az nem módosítja a @templatetext és @parameters kimeneti paraméterek értékeit.
Engedélyek
A nyilvános adatbázis-szerepkör tagságát igényli.
Példák
Az alábbi példa egy olyan lekérdezés paraméteres formáját adja vissza, amely két állandó konstans értéket tartalmaz.
USE AdventureWorks2022;
GO
DECLARE @my_templatetext AS NVARCHAR (MAX);
DECLARE @my_parameters AS NVARCHAR (MAX);
EXECUTE 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;
A @my_templatetext OUTPUT paraméter paraméteres eredményei a következők:
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
Az első állandó konstans (2) paraméterré lesz konvertálva. A második literál ( 400) nem lesz konvertálva, mert egy HAVING záradékon belül van. A sp_get_query_template által visszaadott eredmények egy lekérdezés paraméteres formáját utánozzák, amikor a PARAMETERIZATIONALTER DATABASE beállítása FORCED.
A @my_parameters OUTPUT paraméter paraméteres eredményei a következők:
@0 int
A paraméterek sorrendje és elnevezése a sp_get_query_template kimenetében változhat az SQL Server gyorsjavítási mérnöki, szervizcsomag- és verziófrissítései között. A frissítések azt is okozhatják, hogy ugyanazon lekérdezéshez eltérő konstanskonstanskészletet kell paraméterezni, és mindkét kimeneti paraméter eredményében eltérő térközt kell alkalmazni.