如何描述表中的列 - SQL Server

时间:2015-07-07 10:27:25

标签: sql sql-server stored-procedures

我刚刚创建了一个表

create table TestSchema.TestConfiguration
(
    SomeId int not null,
    LegacyColumnName bit default 0
);

现在我试图用以下方式描述该表:

  exec sys.sp_addextendedproperty 
        @name = N'MS_Description ', 
        @value = N'My Organisation's Configuration table', 
        @level0type = N'SCHEMA',
        @level0name = N'TestSchema', 
        @level1type = N'TABLE',
        @level1name = N'TestConfiguration',
        @level2type = N'COLUMN',
        @level2name = N'LegacyColumnName';

我想在这里用简单的词语来描述LegacyColumnName列代表的内容,例如@level2description ..

我该怎么做?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果您执行问题中显示的查询

 exec sys.sp_addextendedproperty 
        @name = N'MS_Description ', 
        @value = N'My Organisation's Configuration table', 
        @level0type = N'SCHEMA',
        @level0name = N'TestSchema', 
        @level1type = N'TABLE',
        @level1name = N'TestConfiguration',
        @level2type = N'COLUMN',
        @level2name = N'LegacyColumnName';

然后,My Organisation's Configuration table将成为LegacyColumnName列的描述。

答案 1 :(得分:1)

除了@ Raj的优秀答案之外,以下内容扩展了答案:

问题: 所以,如果我理解正确,那么TestSchema,TestConfiguration,LegacyColumnName的描述都是一样的?

答案:       否

以下代码仅描述了“旧列名称”的目的。

exec sys.sp_addextendedproperty 
        @name = N'MS_Description ', 
        @value = N'Legacy Column is used for blah blah blah', 
        @level0type = N'SCHEMA',
        @level0name = N'TestSchema', 
        @level1type = N'TABLE',
        @level1name = N'TestConfiguration',
        @level2type = N'COLUMN',
        @level2name = N'LegacyColumnName'; 

如果您想描述该表,那么以下内容将会这样做。

exec sys.sp_addextendedproperty 
        @name = N'MS_Description ', 
        @value = N'My Organisation's Configuration table', 
        @level0type = N'SCHEMA',
        @level0name = N'TestSchema', 
        @level1type = N'TABLE',
        @level1name = N'TestConfiguration';

如果要描述每一列(或表格等),则需要明确调用 sys.sp_addextendedproperty