在Microsoft SQL 2000及以上版本中,是否可以向表添加类似于"元数据"的描述或注释?
如何通过CREATE TABLE语句实现这一点?
是否可以向字段添加描述或注释?
如何在MSSQL 2000和2005中查询这些信息?
在Microsoft SQL 2000及以上版本中,是否可以向表添加类似于"元数据"的描述或注释?
如何通过CREATE TABLE语句实现这一点?
是否可以向字段添加描述或注释?
如何在MSSQL 2000和2005中查询这些信息?
使用扩展属性。例如,要向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
您肯定可以使用上面提到的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'
大多数工具和人们使用扩展属性来支持此功能。SSMS使用的常用名称是MS_Description。
有几个内置的存储过程可用于创建这些属性以及读取它们,这些过程随时间而改变,因此在SQL版本之间可能存在兼容性差异。
不幸的是,这种方法不适用于高负载的生产环境。操纵扩展属性的存储过程会在目标表上设置独占锁。当它们正在执行时,整个表都无法读取。