none
Concatenar variável com nome de campo RRS feed

  • Pergunta

  •  

    Saudações, pessoal.

     

    Tenho o seguinte código numa procedure:

     

    DECLARE @COUNT INT

    SET @COUNT=2

     

    UPDATE TABELA

    SET

    valor_maximo=

    CASE

    WHEN  valorcampo_@COUNT > valor_maximo THEN  valorcampo_@COUNT

    ELSE valor_maximo

    END

     

     

    Quero comparar o valor de um campo cujo nome é composto por "valorcampo_" e o número da variável contador, para saber se ele é o máximo.

    Não consigo fazer o sql reconhecer essa composição para o nome.

     

    Tentei ',",&,+... mas nada funciona.

     

    Alguém pode dar uma mão?

     

    Desde já, valeu.

     

    quarta-feira, 2 de julho de 2008 16:16

Todas as Respostas

  • Cara, tenta assim:

     

    DECLARE @COUNT INT, @SQL VARCHAR(1000)

    SET @COUNT=2

    SET @SQL = 'UPDATE TABELA SET valor_maximo = CASE WHEN valorcampo_' + CAST(@COUNT AS VARCHAR(10)) + ' > valor_maximo THEN valorcampo_' + CAST(@COUNT AS VARCHAR(10)) + ' ELSE valor_maximo END'

    EXEC(@SQL)

     

    sempre que preciso fazer alguma coisa desse tipo, uso o EXEC

    quarta-feira, 2 de julho de 2008 16:25
  • Jones,

     

    Veja se este exemplo ajuda:

     

    Code Snippet

    Declare @Comando VarChar(500)

     

    DECLARE @COUNT INT

    SET @COUNT=2

     

     

    Set @Comando='UPDATE TABELA

    SET

    valor_maximo=

    CASE

    WHEN valorcampo_'+Convert(VarChar(3),@COUNT) +'> valor_maximo THEN valorcampo_@COUNT

    ELSE valor_maximo

    END'

     

    Print @Comando

     

     

    quarta-feira, 2 de julho de 2008 16:29
  •  

    Caras, valeu mesmo. Isso de jogar pra uma string antes resolveu muito bem.

     

    Abraço!

     

    quarta-feira, 2 de julho de 2008 18:09
  • Júnior, postei a mesma solução que tu acima...

    quarta-feira, 2 de julho de 2008 19:43
  • Anderson,

     

    Sem problemas!!!

    quarta-feira, 2 de julho de 2008 19:49