是否可以在Microsoft SQL 2000及更高版本的表中添加类似“元数据”的描述或注释?
您将如何通过CREATE TABLE语句执行此操作?
是否可以向字段添加说明或评论?
如何在MSSQL 2000中查询此信息? 2005?
答案 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应该是你做出这些改变的首选,除非你试图使用脚本自动化。这是怎么做的:
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)
不幸的是,这种方法不适用于高负载的生产环境。操纵扩展属性的存储过程会在目标表上设置独占锁定。当他们被执行时,整个表格都是不可读的。