1

重複の可能性:
SQL Server: テーブル メタデータの抽出 (説明、フィールド、およびそれらのデータ型)

SQL Server 2008 からテーブルと列の説明をプログラムで取得する方法はありますか? これらは、UI を使用するときに入力できる説明です。

もしそうなら、それらもプログラムで更新する方法はありますか?

ありがとう。

4

2 に答える 2

0

説明データを取得するには、sysobjects/syscolumnsをいじる必要があります

SELECT          u.name + '.' + t.name AS [table],
            td.value AS [table_desc],
                c.name AS [column],
                cd.value AS [column_desc]
FROM            sysobjects t
INNER JOIN  sysusers u
    ON          u.uid = t.uid
LEFT OUTER JOIN sys.extended_properties td
    ON          td.major_id = t.id
    AND         td.minor_id = 0
    AND         td.name = 'MS_Description'
INNER JOIN  syscolumns c
    ON          c.id = t.id
LEFT OUTER JOIN sys.extended_properties cd
    ON          cd.major_id = c.id
    AND         cd.minor_id = c.colid
    AND         cd.name = 'MS_Description'
WHERE t.type = 'u'
ORDER BY    t.name, c.colorder

いくつかの情報はで見つけることができます

select * from INFORMATION_SCHEMA.TABLES
select * from INFORMATION_SCHEMA.COLUMNS
于 2012-07-25T18:22:35.803 に答える
0

MSSMS の UI を使用して設定した "説明" を取得する場合は、sys.extended_properties を照会する必要があります。

まずselect * from sys.extended_properties、値列のいくつかのレコードを読んで意味を理解してください (以前に設定した説明がそこにあります)。どの説明がどのテーブルに属しているかを知るために、後でsysobjectsといくつかの結合を行う必要があります(私は推測します)。混乱している場合は、Google で検索して詳細を確認してください =)

また、これを試してください:

select * from sys.extended_properties
inner join sysobjects on sys.extended_properties.major_id = sysobjects.id

「値」列と 2 番目の「名前」列 (sysobjects に属します) が探しているものです。

それが役立つことを願っています。

于 2012-07-25T17:37:55.500 に答える