是否可以在Microsoft SQL 2000+中向表中添加描述/注释

时间:2008-12-18 18:07:10

标签: sql-server metadata

是否可以在Microsoft SQL 2000及更高版本的表中添加类似“元数据”的描述或注释?

您将如何通过CREATE TABLE语句执行此操作?

是否可以向字段添加说明或评论?

如何在MSSQL 2000中查询此信息? 2005?

4 个答案:

答案 0 :(得分:27)

使用扩展属性。例如,要将扩展属性添加到dbo架构中的表,您可以使用:

EXEC sys.sp_addextendedproperty @name=N'<NameOfProp>', 
@value=N'<Value>' , @level0type=N'SCHEMA',@level0name=N'dbo', 
@level1type=N'TABLE',@level1name=N'<Table>'

您可以更新它们:

EXEC sys.sp_updateextendedproperty 
   @name=N'MS_Description', @value=N'My Description' ,
     @level0type=N'SCHEMA',@level0name=N'dbo', 
      @level1type=N'TABLE'
     ,@level1name=N'<YOUR TABLE NAME>'

您可以阅读它们:

SELECT *
FROM fn_listextendedproperty (NULL, 'schema','dbo', 'table', '<yourtable>', default, default);

SELECT
p.name AS [Name],p.value
FROM
sys.tables AS tbl
INNER JOIN sys.extended_properties AS p ON p.major_id=tbl.object_id AND p.minor_id=0 AND p.class=1
WHERE
(tbl.name=N'<yourtablename>' and SCHEMA_NAME(tbl.schema_id)=N'dbo')
ORDER BY
[Name] ASC

答案 1 :(得分:10)

你肯定可以使用上面提到的SP来做这件事,但是,有一种更简单的方法可以做到这一点我相信MGT Studio应该是你做出这些改变的首选,除非你试图使用脚本自动化。这是怎么做的: enter image description here

1-右键单击表格

2-点击设计

3-评论如上所示

这样你就得到了一个完整的答案,这里有一个更简单的脚本来改变它(比上面的答案更简单):

DECLARE @v sql_variant 
SET @v = N'Comment here'
EXECUTE sp_addextendedproperty N'MS_Description', @v, N'SCHEMA', N'dbo', N'TABLE', N'Stack_testing', N'COLUMN', N'testinghere'

答案 2 :(得分:3)

大多数工具和人员都使用扩展属性来支持此功能。 SSMS使用的通用名称是MS_Description

有几个内置的存储过程用于创建这些属性以及读取它们,它们会随着时间的推移而发生变化,因此SQL版本之间存在差异。

答案 3 :(得分:0)

不幸的是,这种方法不适用于高负载的生产环境。操纵扩展属性的存储过程会在目标表上设置独占锁定。当他们被执行时,整个表格都是不可读的。