¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

sp_get_query_template (Transact-SQL)

Devuelve el formato con parámetros de una consulta. Los resultados devueltos simulan el formato con parámetros de un consulta resultante cuando se utiliza la parametrización forzada. sp_get_query_template se utiliza principalmente al crear guías de plan TEMPLATE.

Se aplica a: SQL Server (SQL Server 2008 hasta la versión actual).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

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

'query_text'

Es la consulta para la que se va a generar la versión con parámetros. 'query_text' debe ir entre comillas simples y precedida por el especificador Unicode N. N'query_text' es el valor asignado al parámetro @querytext. Es de tipo nvarchar(max).

@templatetext

Parámetro de salida de tipo nvarchar(max), suministrado como se indica, para recibir el formato con parámetros de query_text como literal de cadena.

@parameters

Parámetro de salida de tipo nvarchar(max), suministrado como se indica, para recibir un literal de cadena de los nombres de parámetros y tipos de datos con parámetros en @templatetext.

sp_get_query_template devuelve un error cuando se produce lo siguiente:

  • No se parametriza ningún valor literal constante en query_text.

  • query_text es NULL, no es una cadena Unicode, no es válido sintácticamente o no se puede compilar.

Si sp_get_query_template devuelve un error, no modifica los valores de los parámetros de salida @templatetext y @parameters.

Debe pertenecer al rol de base de datos public.

En el ejemplo siguiente se devuelve el formato con parámetros de una consulta que contiene dos valores literales constantes.

USE AdventureWorks2012;
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;

Estos son los resultados con parámetros del parámetro @my_templatetextOUTPUT:

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

Observe que el primer literal constante, 2, se convierte en un parámetro. El segundo literal, 400, no se convierte porque está en una cláusula HAVING. Los resultados devueltos por sp_get_query_template simulan el formato con parámetros de una consulta cuando la opción PARAMETERIZATION de ALTER DATABASE está establecida en FORCED.

Estos son los resultados con parámetros del parámetro @my_parameters OUTPUT:

@0 int
NotaNota

El orden y la nomenclatura de los parámetros en la salida de sp_get_query_template pueden variar entre actualizaciones de ingeniería de corrección rápida, de Service Pack y de versión de SQL Server. Las actualizaciones también pueden hacer que se parametrice un conjunto distinto de literales constantes para la misma consulta y que se aplique un espaciado diferente a los resultados de ambos parámetros de salida.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft