SQLServerで作成したテーブルやカラムにコメントをつけれないか調べたところ、sys.sp_addextendedpropertyを使えばコメントをつけれると判明しました。
SQLServerでテーブルやカラムにコメントをつける
SQLServerで作成したテーブルやカラムにコメントをつけれないか調べたところ、sys.sp_addextendedpropertyを使えばコメントをつけれると判明しました。
テーブルにコメントをつける
作成したテーブルにコメントをつけるにはsys.sp_addextendedpropertyを以下の引数を指定して呼び出します。
--テーブルを作成
CREATE TABLE test_table
(
no INT
,name VARCHAR(20)
)
--テーブルにコメントを付ける
EXEC sys.sp_addextendedproperty @name=N'MS_Description'
,@value=N'生徒管理マスタ'
,@level0type=N'SCHEMA'
,@level0name=N'dbo'
,@level1type=N'TABLE'
,@level1name=N'test_table'
テーブルにつけたコメントを取得する
上でテーブルにつけたコメントを取得します。
取得するにはextended_propertiesを参照します。
SELECT
t.name AS table_name
,ep.value AS comment
FROM
sys.tables AS t
,sys.extended_properties AS ep
WHERE
t.name = 'test_table'
AND t.object_id = ep.major_id
AND ep.minor_id = 0
上記の実行結果は
table_name comment test_table 生徒管理マスタ
になります。
カラムにコメントをつける
カラムにコメントを付ける場合もsys.sp_addextendedpropertyを以下の引数を指定して呼び出します。
EXEC sys.sp_addextendedproperty @name=N'MS_Description'
,@value=N'出席番号'
,@level0type=N'SCHEMA'
,@level0name=N'dbo'
,@level1type=N'TABLE'
,@level1name=N'test_table'
,@level2type=N'COLUMN'
,@level2name=N'no'
EXEC sys.sp_addextendedproperty @name=N'MS_Description'
,@value=N'生徒の氏名'
,@level0type=N'SCHEMA'
,@level0name=N'dbo'
,@level1type=N'TABLE'
,@level1name=N'test_table'
,@level2type=N'COLUMN'
,@level2name=N'name'
カラムにつけたコメントを取得する
上でカラムにつけたコメントを取得します。
取得するにはextended_propertiesを参照します。
SELECT
t.name AS table_name
,c.name AS column_name
,ep.value AS commnet
FROM
sys.tables AS t
,sys.columns AS c
,sys.extended_properties AS ep
WHERE
t.name = 'test_table'
AND t.object_id = c.object_id
AND c.object_id = ep.major_id
AND c.column_id = ep.minor_id
上記の実行結果は
table_name column_name commnet test_table no 出席番号 test_table name 生徒の氏名
になります。
これを利用すれば簡単なテーブル仕様書はSQLで作れます。
PostgreSQLの場合は以下の記事を参照してください。

PostgreSQLでテーブルやカラムにコメントを設定する方法
PostgreSQLでテーブルやカラムにSQLでコメントを設定するには「COMMENT」コマンドを利用します。どちらの場...
PostgreSQLでテーブルやカラムのコメントをSQLで取得する方法
PostgreSQLのテーブルコメントやカラムコメントをSQLで取得するにはPostgreSQLカタログの「pg_des...
