locked
retornar número de colunas de uma query RRS feed

  • Pergunta

  • tenho a seguinte query:

    select campo1, campo2, campo3 from tabela

    como eu pego o total de colunas que retornou numa query? nesse casso teria q retornar 3

    sexta-feira, 21 de setembro de 2012 18:06

Respostas

  • Verifiquei o seguinte: se você puder jogar o resultado da sua consulta para uma tabela temporária, você consegue usar a sys.columns para saber o número de colunas desta tabela.

    Exemplo:

    Select
      Codigo,
      Nome
    Into
      #TabelaAuxiliar
    From
      TabelaPrincipal
    
    Select Count(*) From TempDb.sys.columns Where object_id = OBJECT_ID('TempDb..#TabelaAuxiliar')


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Fernando Maradei sexta-feira, 21 de setembro de 2012 18:19
    • Marcado como Resposta rafa-martin sexta-feira, 21 de setembro de 2012 18:30
    sexta-feira, 21 de setembro de 2012 18:16
    Moderador

Todas as Respostas

  • Exatamente pra que você precisa disso?

    Pergunto pra saber o que realmente pode ser usado pra lhe ajudar.

    Pois a princípio, se você sabe como montar a query, você sempre saberá a quantidade de colunas que está sendo usada.

    Então por que precisa dessa informação dinamicamente?


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    sexta-feira, 21 de setembro de 2012 18:10
    Moderador
  • porque esse caso é apenas um exemplo. porém, as colunas serão passas num array como parâmetro numa proc.

    então pode vir n colunas. por isso quero retornar a quantidade colunas que está retornando no select. o mesmo será dinamico.

    como seria?

    sexta-feira, 21 de setembro de 2012 18:15
  • Verifiquei o seguinte: se você puder jogar o resultado da sua consulta para uma tabela temporária, você consegue usar a sys.columns para saber o número de colunas desta tabela.

    Exemplo:

    Select
      Codigo,
      Nome
    Into
      #TabelaAuxiliar
    From
      TabelaPrincipal
    
    Select Count(*) From TempDb.sys.columns Where object_id = OBJECT_ID('TempDb..#TabelaAuxiliar')


    Roberson Ferreira - Database Developer
    Acesse: www.robersonferreira.com.br
    Email: contato@robersonferreira.com.br

    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    • Sugerido como Resposta Fernando Maradei sexta-feira, 21 de setembro de 2012 18:19
    • Marcado como Resposta rafa-martin sexta-feira, 21 de setembro de 2012 18:30
    sexta-feira, 21 de setembro de 2012 18:16
    Moderador
  • opa!!!

    deu certinho.

    valeu!!

    sexta-feira, 21 de setembro de 2012 18:22