如何在SQL Server中向现有表列添加注释?

27

可能是重复问题:
SQL Server 2008上的Create Table SQL注释

我只想知道如何在SQL Server中为现有表列添加注释?看起来很简单,但我在前5个搜索结果中都没有找到任何东西。

编辑

我想知道SQL查询,而不是使用UI。

2个回答

37

在SQL Server Management Studio中创建新表时,可以参考此截图为列添加描述:

输入图片描述

若要以编程方式实现:

EXEC sp_updateextendedproperty 
@name = N'MS_Description', @value = 'Your description',
@level0type = N'Schema', @level0name = dbo, 
@level1type = N'Table',  @level1name = Your Table Name, 
@level2type = N'Column', @level2name = Yuur Column Name;

4
我不使用用户界面,我想知道 SQL 查询语句。 - Rubens Mariuzzo
3
一个不错的小技巧是在 GUI 设计器中定义你的描述,保存后使用上下文菜单获取生成脚本。这样可以自动生成完整的描述代码。 - André C. Andersen
编程示例更新现有的扩展属性。如果该属性尚不存在,则会出错。您需要使用 sp_addextendedproperty 添加新属性。 - Travis

21

这取决于你对“注释”的理解。如果你想要在列中添加描述性文本,你可以使用SQL Server Management Studio设置Column Description

要编程设置描述,请使用sp_addextendedpropertysp_updateextendedpropertysp_dropextendedproperty存储过程。例如:

EXEC sp_addextendedproperty 
    @name = N'MS_Description', @value = 'This is the description of my column',
    @level0type = N'Schema', @level0name = 'dbo',
    @level1type = N'Table', @level1name = 'MyTable', 
    @level2type = N'Column', @level2name = 'MyColumn'

我承认语法有点不方便 - 以下博客文章包含存储过程,使这个过程变得更加容易:


2
使用SQL中的"扩展属性"请参考http://msdn.microsoft.com/en-us/library/ms190243.aspx。 - gbn
+1 我完全误读了问题。 - Lieven Keersmaekers
2
不想使用用户界面,我想知道SQL查询语句。 - Rubens Mariuzzo
1
@Heinzi => sp_addextendedproperty 向数据库对象添加新的扩展属性。http://msdn.microsoft.com/en-us/library/ms180047.aspx 请查看下面的答案。因为该属性已经在列表中存在...我不会对此帖子进行负评,请更新您的答案... - Pankaj
我认为应该使用 sp_updateextendedproperty 而不是 sp_addextendedproperty - Rubens Mariuzzo
1
@StackOverflowUser:我不同意:MS_Description属性在明确创建之前是不存在的(通过sp_add...或在SSMS中设置)。不过,你说得对,sp_update和sp_dropextendedproperty也应该被提到。谢谢并点赞! - Heinzi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接