none
Caracteristicas de campos RRS feed

  • Pergunta

  • como faço para consultar os campos de todas as tabelas do banco

    e suas caracteristicas , como nome da tabela,  tipo de campo,  tamanho, decimais

    obrigado

    terça-feira, 13 de agosto de 2013 13:31

Respostas

  • Erial,

    SELECT COLUMN_NAME,NUMERIC_PRECISION,NUMERIC_SCALE 
    FROM information_schema.columns
    WHERE TABLE_NAME = 'TB_teste'

    Troca só o nome da tabela por uma de seu banco pra você testar. Coincidentemente, a estrutura de um campo DECIMAL por exemplo é

    DECIMAL(Precision, Scale)

    Enfim, essas views do Information Schema são bem cheias de detalhes pra metadados. Pra você ver por exemplo o tamanho máximo de um campo textual, varchar(100) por exemplo, e quiser retornar esse 100 dele, você pode, nessa mesma view citada acima, retornar a coluna CHARACTER_MAXIMUM_LENGHT.

    Desejo uma boa exploração da mesma :)

    Att


    -



    • Editado Renato Siqueira terça-feira, 13 de agosto de 2013 13:58
    • Marcado como Resposta erial terça-feira, 13 de agosto de 2013 14:12
    terça-feira, 13 de agosto de 2013 13:53

Todas as Respostas

  • Bom dia Erial,

    A forma mais prática é consultando o INFORMATION_SCHEMA.

    http://technet.microsoft.com/en-us/library/ms186778.aspx

    Ou ainda, de modo mais conceitual:

    http://en.wikipedia.org/wiki/Information_schema

    Por exemplo, rode a consulta abaixo em um banco em que você precise descobrir detalhes sobre as colunas pra fins de testes. Todas as informações que você citou são trazidas pelo comando.

    SELECT *  FROM INFORMATION_SCHEMA.COLUMNS

    Existem outras alternativas como consultar outras views (sys.objects, sys.tables, etc) e fazendo alguns joins pra trazer o que você quer. Mas sem dúvida, pra consultar metadados, nada é mais eficiente que a INFORMATION_SCHEMA, que inclusive é algo sugerido no padrão ANSI.

    Espero ter ajudado.


    -




    terça-feira, 13 de agosto de 2013 13:45
  • como pego as decimais de um campo?
    terça-feira, 13 de agosto de 2013 13:49
  • Erial,

    SELECT COLUMN_NAME,NUMERIC_PRECISION,NUMERIC_SCALE 
    FROM information_schema.columns
    WHERE TABLE_NAME = 'TB_teste'

    Troca só o nome da tabela por uma de seu banco pra você testar. Coincidentemente, a estrutura de um campo DECIMAL por exemplo é

    DECIMAL(Precision, Scale)

    Enfim, essas views do Information Schema são bem cheias de detalhes pra metadados. Pra você ver por exemplo o tamanho máximo de um campo textual, varchar(100) por exemplo, e quiser retornar esse 100 dele, você pode, nessa mesma view citada acima, retornar a coluna CHARACTER_MAXIMUM_LENGHT.

    Desejo uma boa exploração da mesma :)

    Att


    -



    • Editado Renato Siqueira terça-feira, 13 de agosto de 2013 13:58
    • Marcado como Resposta erial terça-feira, 13 de agosto de 2013 14:12
    terça-feira, 13 de agosto de 2013 13:53