none
pegar retorno de select dinamico RRS feed

  • Pergunta

  • tenho o seguinte select dinamico: 

    set @sql = '(select ' + convert(varchar(100),@valor) + ' from tabela (nolock) where coluna1 = ' + convert(varchar(400),@valor1) + ' and convert(varchar(10),data,121) = ' + ''''+convert(varchar(10),@data,121)+''')'

    o meu retorno será um valor. o que eu preciso é fazer algo do tipo assim:

    set @valor = exec(@sql)

    quinta-feira, 21 de março de 2013 09:51

Respostas

  • consegui usando sp_executesql:

    DECLARE @SQL nvarchar(4000),
    @TotalRowCount int,
    @valor float,
    @COD_INDEXADOR INT,
    @DATA_PARAMENTRO DATETIME


    SET @VALOR1 = 0
    SET @DATA = '2013-04-30'

    SET @SQL = N'SELECT @valor = VALOR from TABELA where COLUNA1 = ' + CONVERT(VARCHAR(400),@VALOR1) + ' AND DATA = ' + ''''+CONVERT(VARCHAR@DATA)+''''


    exec sp_executesql @SQL, N'@valor float output', @valor output


    select @valor

    • Marcado como Resposta rafa-martin quinta-feira, 21 de março de 2013 10:13
    quinta-feira, 21 de março de 2013 10:13