33

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

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

是否可以在字段中添加描述或评论?

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

4

4 回答 4

34

使用扩展属性。例如,要将扩展属性添加到 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
于 2008-12-18T18:20:40.387 回答
19

您当然可以使用上面提到的 SP 来执行此操作,但是,有一种更简单的方法可以执行此操作,我相信 MGT Studio 应该是您进行这些更改的首选,除非您尝试使用脚本自动化操作。这是如何做到的: 在此处输入图像描述

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'
于 2016-08-03T14:17:25.703 回答
4

大多数工具和人们使用扩展属性来支持这一点。SSMS 使用的通用名称是 MS_Description

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

于 2008-12-18T18:09:58.270 回答
2

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

于 2018-01-25T20:41:16.833 回答