Condividi tramite


sp_get_query_template

Restituisce il formato con parametri di una query. I risultati restituiti sono simili al formato con parametri di una query risultante dall'utilizzo della parametrizzazione forzata. La stored procedure sp_get_query_template viene principalmente utilizzata durante la creazione delle guide di piano TEMPLATE.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_get_query_template
   [ @querytext = ] N'query_text'         
      , @templatetext OUTPUT 
      , @parameters OUTPUT 

Argomenti

  • 'query_text'
    Query per la quale la versione con parametri deve essere generata. 'query_text' deve essere racchiuso tra virgolette semplici e preceduto dall'identificatore Unicode N. N'query_text' è il valore assegnato al parametro @querytext ed è di tipo nvarchar(max).
  • @templatetext
    Parametro di output di tipo nvarchar(max), specificato come indicato, che riceve il formato con parametri di query_text come valore letterale stringa.
  • @parameters
    Parametro di output di tipo nvarchar(max), specificato come indicato, che riceve il valore letterale stringa dei nomi di parametro e dei tipi di dati a cui sono stati associati parametri in @templatetext.

Osservazioni

sp_get_query_template restituisce un errore se:

  • Non assegna parametri a valori letterali costanti in query_text.
  • query_text è NULL, non è una stringa Unicode, non è sintatticamente valido oppure non può essere compilato.

Se sp_get_query_template restituisce un errore, i valori dei parametri di output @templatetext e @parameters non vengono modificati.

Autorizzazioni

È richiesta l'appartenenza al ruolo del database public.

Esempi

Nell'esempio seguente viene restituito il formato con parametri di una query contenente due valori letterali costanti.

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;

Di seguito sono riportati i risultati con parametri del parametro @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

Il primo valore letterale costante, 2, viene convertito in parametro. Il secondo valore letterale, 400, non viene convertito perché si trova all'interno di una clausola HAVING. I risultati restituiti da sp_get_query_template sono simili al formato con parametri di una query se l'opzione PARAMETERIZATION dell'istruzione ALTER DATABASE è impostata su FORCED. Per ulteriori informazioni sulle variabili a cui vengono assegnati parametri in queste condizioni, vedere Parametrizzazione forzata.

Di seguito sono riportati i risultati con parametri del parametro @my_parameters``OUTPUT.

@0 int

[!NOTA] L'ordine e la denominazione dei parametri nell'output della stored procedure sp_get_query_template possono variare tra correzioni QFE (Quick Fix Engineering), Service Pack e aggiornamenti di versione di SQL Server. È inoltre possibile che in seguito agli aggiornamenti vengano assegnati parametri a un set di valori letterali costanti diverso per la stessa query e che una spaziatura diversa venga applicata ai risultati in entrambi i parametri di output.

Vedere anche

Riferimento

Stored procedure di sistema (Transact-SQL)
Stored procedure del Motore di database (Transact-SQL)

Altre risorse

Definizione delle funzionalità di parametrizzazione delle query tramite guide di piano
Progettazione di guide di piano per le query parametrizzate

Guida in linea e informazioni

Assistenza su SQL Server 2005