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とか見たくねえ><