Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/12/2011, 13:48
Cristo_
 
Fecha de Ingreso: octubre-2008
Mensajes: 61
Antigüedad: 16 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Recuperar consulta dinámica en una varible sql server

Así es Andres95, solo era un ejemplo para poder expresar de la manera mas sencilla mi duda, ya que en problema donde lo voy a aplicar es mucho mas complejo. Te agradezco enormemente, tu código fue de gran ayuda , y pues ya me quedo , de igual manera agradezco al resto de los que me hicieron comentarios, publico en otra entrada la solución, saludos.

Cita:
Iniciado por Andres95 Ver Mensaje
Es raro ese uso, pero supongo que es solo un ejemplo..

de cualquier forma lo mejor es ejecutar codigo dinamico a traves del sp sp_executesql, ya que acepta parametros de entrada y salida y ademas se almacena el plan de ejecucion del query solicitado.




este seria un ejemplo de uso..

Código:

DECLARE @nquery NVARCHAR(4000)
       ,@nParams NVARCHAR(4000) 
       
DECLARE @n1 INT, @n2 INT, @res INT

SET @N1=1
SET @N2=2
SET @res = 0
       
SET @nParams = '@n1 INT, @n2 INT, @res INT OUTPUT'       
SET @nquery = ' EXECUTE [dbo].[SP_PRUEBA_SUMA] @N1,@N2, @RES OUTPUT'

EXECUTE sp_executesql @nQuery, @nParams
			  ,@n1 = @N1
			  ,@n2 = @N2
			  ,@RES = @RES OUTPUT 

SELECT @RES
--

Ahora que si de plano no se puede cambiar el query dinamico.. este seria un ejemplo que compila y regresa el resultado como un resultset...

Código:

DECLARE @n1 INT, @n2 INT
DECLARE @query VARCHAR(4000)

SET @N1=1
SET @N2=2

SET @query = 'DECLARE @res INT EXECUTE [dbo].[SP_PRUEBA_SUMA] ' 
           + CAST(@N1 AS VARCHAR) +',' + CAST(@N2 AS VARCHAR) 
           +', @RES OUTPUT SELECT @RES'
           
EXECUTE (@query)


Saludos!