Logo UGIdotNET

Ricavare la descrizione di un campo di una tabella SqlServer

Quando creiamo una tabella di un database SqlServer possiamo associare a ogni colonna una descrizione. Come recuperare questo valore?
Facciamo l'esempio di una tabella User con una colonna Id che ha descrizione "Campo Id della tabella User".

Il campo Description è un'extendedproperty associata alla tabella e il suo valore può essere recuperato grazie la funzione fn_listextendedproperty di SqlServer (maggiori informazioni si possono trovare nel Book Online di SqlServer 2000) attraverso la seguente query:

SELECT objname, value FROM ::fn_listextendedproperty(NULL,'user','dbo',table','NOME_TABELLA', 'column', 'NOME_COLONNA') WHERE name = 'MS_Description'

Nel nostro esempio basterà sostituire NOME_TABELLA con User e NOME_COLONNA con Id(attenzione!Bisogna inserire gli apici!) . Se si vuole l'elenco di tutte le description della tabella basterà inserire il valore null (senza apici) al posto di NOME_COLONNA.
Vediamo il codice con ADO.NET:

SqlConnection conn = new SqlConnection("STRINGA_CONNESSIONE");
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT objname, value FROM ::fn_listextendedproperty(NULL,'user','dbo',table',User', 'column', null) WHERE name = 'MS_Description'" 
SqlDataReader  reader = cmd.ExecuteReader();
while(reader.Read())

   string result += "Descrizione campo " + reader[0].ToString() + ": " + reader[1].ToString()+"\n"; 
}

Autore: Gianluca Carucci
Data: 26 marzo 2003
Ultimo aggiornamento: 23 luglio 2004
Categorie: 

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185