none
Noms des tables et des colonnes RRS feed

  • Question

  • Dans ma base SQL 2005, il y a des tables ; par ex: ARTI cette table a une description qui est "Articles"
    chaque colonne de la table a un nom par ex: "ItemCode" et une description : "Code Article"

    Comment puis-je retrouver les textes "Articles" et "Code Article" par une requête SQL ?

    ma question peut sembler primaire aux initiés, mais je débute en SQL server. Quelqun peut-il m'aider ?
    lundi 2 mars 2009 09:33

Réponses

  • Salut,

    cette petite requete devrait te permettre de repondre a ta question:

    select 
        o.name as NomTable,  
        p2.Value as TableDescription,  
        c.name as NomColonne,  
        p.Value as ColonneDescription  
    from 
        sysobjects o  
     
        inner join syscolumns c on 
            o.id = c.id  
     
        left outer join sys.extended_properties p2 on 
            p2.major_id = o.id  
            and p2.minor_id = 0  
            and p2.name = 'MS_Description' 
     
        left outer join sys.extended_properties p on 
            p.minor_id = c.colid  
            and p.major_id = o.id  
            and p.name = 'MS_Description' 
    where 
        o.type = 'U' 
    order by 
        o.name,  
        c.name 

    sysobjects pour avoir le nom des tables,
    syscolumns pour avoir le nom des colonnes,
    extended_properties ("p2") pour avoir la description des tables (filtrees sur "MS_Description"),
    extended_properties ("p") pour avoir les descriptions des colonnes.

    En general les descriptions sont dans extended_properties avec name = 'MS_Description'.

    J'espere que ca t'aide,

    Philippe
    lundi 2 mars 2009 09:55

Toutes les réponses

  • Salut,

    cette petite requete devrait te permettre de repondre a ta question:

    select 
        o.name as NomTable,  
        p2.Value as TableDescription,  
        c.name as NomColonne,  
        p.Value as ColonneDescription  
    from 
        sysobjects o  
     
        inner join syscolumns c on 
            o.id = c.id  
     
        left outer join sys.extended_properties p2 on 
            p2.major_id = o.id  
            and p2.minor_id = 0  
            and p2.name = 'MS_Description' 
     
        left outer join sys.extended_properties p on 
            p.minor_id = c.colid  
            and p.major_id = o.id  
            and p.name = 'MS_Description' 
    where 
        o.type = 'U' 
    order by 
        o.name,  
        c.name 

    sysobjects pour avoir le nom des tables,
    syscolumns pour avoir le nom des colonnes,
    extended_properties ("p2") pour avoir la description des tables (filtrees sur "MS_Description"),
    extended_properties ("p") pour avoir les descriptions des colonnes.

    En general les descriptions sont dans extended_properties avec name = 'MS_Description'.

    J'espere que ca t'aide,

    Philippe
    lundi 2 mars 2009 09:55
  • Merci Philppe,

    La requête fait pile ce que je voulais. L'inconvénient est que mes descriptions sont vierges ! (ballot hein ?)

    Pas grave, j'ai appris quelque chose
    mardi 3 mars 2009 05:41
  • Salut,

    peux-tu marquer ma reponse precedente comme "Reponse" ? Ca permettra de clore le thread...

    Merci
    Philippe

    mardi 3 mars 2009 11:44