SQLServerのテーブルやカラムにコメントをつける方法

プログラミング SQL Server

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で作れます。

タイトルとURLをコピーしました