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...