SQL Server 2008 からテーブルと列の説明をプログラムで取得する方法はありますか? これらは、UI を使用するときに入力できる説明です。
もしそうなら、それらもプログラムで更新する方法はありますか?
ありがとう。
SQL Server 2008 からテーブルと列の説明をプログラムで取得する方法はありますか? これらは、UI を使用するときに入力できる説明です。
もしそうなら、それらもプログラムで更新する方法はありますか?
ありがとう。
説明データを取得するには、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
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 に属します) が探しているものです。
それが役立つことを願っています。