Quantcast
Channel: Resultado de función en query dinámico asignado a una variable - Stack Overflow en español
Viewing all articles
Browse latest Browse all 2

Resultado de función en query dinámico asignado a una variable

$
0
0

Lo siguiente lo trabajo en SQL Server 2008 R2. Tengo un query dinámico que arma una función:

    SET @QryFn = 'SELECT FnPrueba_'+ REPLACE(@Fn_Funcion,'','_') +'('''+ @idMovto +''','+ CAST(@TEMP_ORDEN AS VARCHAR)...

Si le hago un select a la variable @QryFn me devuelve lo siguiente:

    SELECT     FletesMex_ERP.dbo.FnFletesMex_PGADRENTA2269_IVA_ACREDITABLE_CARGO('PGADRENTA2269',2,'IVA ACREDITABLE CARGO',633)

Si ejecuto esa sentencia de manera manual me devuelve el valor 8438.4825. Si corro lo anterior con

    EXEC (@QryFn)

de igual manera, me muestra el valor correcto.

El problema viene cuando quiero almacenar ese valor en una variable (¿eso se puede?):

    SET @ResultadoFn = EXEC (@QryFn)

... ya traté poniendo paréntesis

    SET @ResultadoFn = (EXEC (@QryFn))

, quitándolos

    SET @ResultadoFn = EXEC @QryFn

Pues SQL me lo detecta con error de sintaxis..

Msg 156, Level 15, State 1, Line 163

Incorrect syntax near the keyword 'EXEC'.

La verdad es que nunca había trabajado algo así, revisé los contenidos relacionados y el único que se acercó a mi duda fue este: setear variable Query dinamico pero no me sirvió para aclarármela, por eso abrí esta nueva pregunta.

Gracias por su apreciable ayuda!

SOLUCIÓN:

Como me comentaron, seguí los pasos y el código final para asignar el resultado de una función en una variable es el siguiente:

DECLARE @QryFn NVARCHAR(MAX)DECLARE @ResultadoFn MONEYSET @QryFn = 'SELECT @ResultadoSalida = dbo.FnFletesMex_'+REPLACE(@Fn_Funcion,'','_') +'(@PRM_IDMOVTO, @PRM_ORDEN, @PRM_FNNOMBRE, @PRM_COMPRA)'EXEC sp_executesql @QryFn, N'@PRM_IDMOVTO VARCHAR(50), @PRM_ORDEN INT, @PRM_FNNOMBRE VARCHAR(50), @PRM_COMPRA INT, @ResultadoSalida MONEY OUTPUT',@TEMP_IDMOVTO, @TEMP_ORDEN, @Fn_Nombre, @Compra, @ResultadoSalida = @ResultadoFn OUTPUTSELECT @ResultadoFn

Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images