テーブルやカラムにコメントを付ける方法と取得する方法

アプリ開発

準備

テーブルを作成

CREATE TABLE staff (
    id     INT           NOT NULL,
    name   NVARCHAR (50) NULL,
    branch NVARCHAR (50) NULL,
    age    INT           NULL,
    PRIMARY KEY CLUSTERED (id ASC)
);

レコードを追加

INSERT INTO staff (id, name, branch, age) VALUES (1, N'田中', N'東京', 29)
INSERT INTO staff (id, name, branch, age) VALUES (2, N'山田', N'横浜', 31)
INSERT INTO staff (id, name, branch, age) VALUES (3, N'杉浦', N'千葉', 34)
INSERT INTO staff (id, name, branch, age) VALUES (4, N'山野', N'大阪', 25)
INSERT INTO staff (id, name, branch, age) VALUES (5, N'中島', N'横浜', 38)
INSERT INTO staff (id, name, branch, age) VALUES (6, N'鈴木', N'東京', 24)

コメント追加

テーブルにコメントを追加

EXECUTE sp_addextendedproperty 
    @name       = N'MS_Description', 
    @value      = N'スタッフマスタ', 
    @level0type = N'SCHEMA', 
    @level0name = N'dbo', 
    @level1type = N'TABLE', 
    @level1name = N'staff';

カラムにコメントを追加

EXECUTE sp_addextendedproperty 
    @name       = N'MS_Description', 
    @value      = N'ID', 
    @level0type = N'SCHEMA', 
    @level0name = N'dbo', 
    @level1type = N'TABLE', 
    @level1name = N'staff', 
    @level2type = N'COLUMN', 
    @level2name = N'id';
EXECUTE sp_addextendedproperty 
    @name       = N'MS_Description', 
    @value      = N'名前', 
    @level0type = N'SCHEMA', 
    @level0name = N'dbo', 
    @level1type = N'TABLE', 
    @level1name = N'staff', 
    @level2type = N'COLUMN', 
    @level2name = N'name';
EXECUTE sp_addextendedproperty 
    @name       = N'MS_Description', 
    @value      = N'支社名', 
    @level0type = N'SCHEMA', 
    @level0name = N'dbo', 
    @level1type = N'TABLE', 
    @level1name = N'staff', 
    @level2type = N'COLUMN', 
    @level2name = N'branch';
EXECUTE sp_addextendedproperty 
    @name       = N'MS_Description', 
    @value      = N'歳', 
    @level0type = N'SCHEMA', 
    @level0name = N'dbo', 
    @level1type = N'TABLE', 
    @level1name = N'staff', 
    @level2type = N'COLUMN', 
    @level2name = N'age';

コメント取得

テーブルのコメントを取得

SELECT 
    sys.tables.name AS テーブル物理名, 
    sys.extended_properties.value AS テーブル論理名 
FROM 
    sys.schemas 
    INNER JOIN sys.tables 
        ON sys.tables.schema_id = sys.schemas.schema_id 
    LEFT JOIN sys.extended_properties 
        ON sys.extended_properties.major_id = sys.tables.object_id 
        AND sys.extended_properties.minor_id = 0 
テーブル物理名テーブル論理名
1staffスタッフマスタ

カラムのコメントを取得

SELECT 
    sys.columns.name AS カラム物理名, 
    sys.extended_properties.value AS カラム論理名 
FROM 
    sys.schemas 
    INNER JOIN sys.tables 
        ON sys.tables.schema_id = sys.schemas.schema_id 
    INNER JOIN sys.columns 
        ON sys.columns.object_id = sys.tables.object_id 
    LEFT JOIN sys.extended_properties 
        ON sys.extended_properties.major_id = sys.columns.object_id 
        AND sys.extended_properties.minor_id = sys.columns.column_id 
WHERE 
    sys.schemas.name = N'dbo' 
    AND sys.tables.name = N'staff' 
カラム物理名カラム論理名
1IdID
2name名前
3branch支社名
4age
タイトルとURLをコピーしました