SQLServer 2005 のテーブルのコメントをJDBC経由で取得するSQL
DatabaseMetaData経由だとテーブルコメント(説明ってやつ)がとれんのよね。ということで。
テーブル
SELECT t.name AS TABLE_NAME, CAST(e.value AS varchar) AS COMMENT FROM sys.tables t INNER JOIN sys.extended_properties e ON t.object_id = e.major_id AND e.minor_id = 0
カラムはこう
SELECT t.name AS TABLE_NAME, c.name AS COLUMN_NAME, p.name AS TYPE_NAME, c.max_length AS MAX_LENGTH, c.is_nullable AS NULLABLE, c.precision AS PRECISION, c.scale AS SCALE, CAST(e.value AS varchar) AS COMMENT FROM sys.tables t INNER JOIN sys.columns c ON t.object_id = c.object_id INNER JOIN sys.types p ON c.system_type_id = p.system_type_id AND c.user_type_id = p.user_type_id INNER JOIN sys.extended_properties e ON c.object_id = e.major_id AND c.column_id = e.minor_id WHERE t.name = 'テーブル名'
ちくしょう、variantてなんだよ、爆発しろ!ってとこではまった。
追記:キャストが必要なのは sys.extended_properties だけやね。
MSの世界はわからんぜい。MSDNとか見たくねえ><