2010-04-05 2 views

Répondre

1

Sur Sql Server 2005, vous pouvez utiliser cette valeur de table système fonction:

fn_listextendedproperty (Transact-SQL)

ou essayez une requête, from from this article, comme ceci:

SELECT 
    [Table Name] = OBJECT_NAME(c.object_id), 
    [Column Name] = c.name, 
    [Description] = ex.value 
FROM 
    sys.columns c 
LEFT OUTER JOIN 
    sys.extended_properties ex 
ON 
    ex.major_id = c.object_id 
    AND ex.minor_id = c.column_id 
    AND ex.name = 'MS_Description' 
WHERE 
    OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0 
    -- AND OBJECT_NAME(c.object_id) = 'your_table' 
ORDER 
    BY OBJECT_NAME(c.object_id), c.column_id 
+0

merci, mais j'ai déjà datatable retourné par connection.GetSchema() et j'ai essayé de saisir les informations de description de celui-ci. Depuis en boucle à travers les lignes de la table de données que je peux obtenir l'information du nom de colonne, type de données, etc. Je suppose que la description doit être là aussi, mais je ne peux pas trouver où – Pablo

2

Essayez ceci:

SELECT 
    [Table Name] = i_s.TABLE_NAME, 
    [Column Name] = i_s.COLUMN_NAME, 
    [Description] = s.value 
FROM 
    INFORMATION_SCHEMA.COLUMNS i_s 
LEFT OUTER JOIN 
    sys.extended_properties s 
ON 
    s.major_id = OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME) 
    AND s.minor_id = i_s.ORDINAL_POSITION 
    AND s.name = 'MS_Description' 
WHERE 
    OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME), 'IsMsShipped')=0 
    --AND i_s.TABLE_NAME = 'table_name' 
ORDER BY 
    i_s.TABLE_NAME, i_s.ORDINAL_POSITION 

modifier: fixe la requête :-)

HTH

+0

Sur SQL Server 2005, je reçois 'Msg 208, niveau 16, état 1, ligne 1 Nom d'objet incorrect « sysproperties'.' –

+0

+1, c'est exactement ce que je cherchais. J'ai utilisé la même requête avec une exception: j'ai ajouté "AND s.value IS NOT NULL" à la clause where pour renvoyer uniquement les colonnes avec une description non nulle. – jlafay

0

Si vous avez déjà le DataTable, comme vous le mentionnez - regardez ses colonnes de données!

foreach(DataColumn col in dataTable.Columns) 
{ 
    // check out all the properties on the DataColumn 
} 

Est-ce que ce que vous devez contiens avoir ??

+0

oui, j'ai déjà la boucle fait et Im saisissant D'autres propriétés dans la colonne de données telles que "IS_NULLABLE", "COLUMN_NAME", "DATA_TYPE", etc., mais je ne peux pas trouver comment saisir la description d'une colonne. J'utilise l'inspecteur d'objets pour voir les propriétés/méthodes de la colonne de données, mais je ne trouve pas non plus comment récupérer cette information particulière avec l'inspecteur d'objets. – Pablo

+0

cela semble être le même problème je http://www.bigresource.com/MS_SQL-GetSchema-not-returning-description-of-table-or-column-GSfX9tHx.html – Pablo

Questions connexes