Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/12/2011, 16:19
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Recuperar consulta dinámica en una varible sql server

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!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 08/12/2011 a las 16:26