user, table, column的值不变
execute sp_addextendedproperty N'名称', N'描述','user','dbo','table','parent','column','name';
SELECT * FROM sys.databases WHERE name = 'TESTDB'
SELECT * FROM sys.tables WHERE name = 'parent'
SELECT * FROM sys.columns WHERE [object_id] = 821577965
SELECT * FROM sys.extended_properties WHERE class = 1 AND major_id = 821577965
此示例为导出某个表注释的语句:(表名是bbs_bank_log)
SELECT DISTINCT
d.name,
f.value
FROM
syscolumns a
LEFT JOIN systypes b ON a.xusertype= b.xusertype
INNER JOIN sysobjects d ON a.id= d.id
AND d.xtype= 'U'
AND d.name<> 'dtproperties'
LEFT JOIN syscomments e ON a.cdefault= e.id
LEFT JOIN sys.extended_properties g ON a.id= G.major_id
AND a.colid= g.minor_id
LEFT JOIN sys.extended_properties f ON d.id= f.major_id
AND f.minor_id= 0
注意事项:
sysobjects是系统对象表,syscolumns是系统字段信息表,systypes是系统类型表。
通过字段的ID和sysproperties(系统注释属性表)关联,即可读出注释信息。
查看并导出SQL Server 2005以上数据表中字段的注释信息:
select minor_id,value from sys.extended_properties where major_id=数据表在数据库中的ID Order By minor_id
sysobjects是系统对象表,syscolumns是系统字段信息表,systypes是系统类型表。
通过字段的ID和sysproperties(系统注释属性表)关联,即可读出注释信息。
--为字段添加注释
--Eg. execute sp_addextendedproperty 'MS_Description','字段备注信息','user','dbo','table','字段所属的表名','column','添加注释的字段名';
execute sp_addextendedproperty 'MS_Description','add by liyc. 诊断类别码','user','dbo','table','DiagRecord','column','DiagTypeCode';
-- 删除表注释
execute sp_dropextendedproperty 'MS_Description','user','dbo','table','DiagRecord',null,null;
--修改字段注释
execute sp_updateextendedproperty 'MS_Description','add by liyc.','user','dbo','table','DiagRecord','column','DiagTypeCode';
-- 添加表注释
execute sp_addextendedproperty 'MS_Description','诊断记录文件','user','dbo','table','DiagRecord',null,null;
-- 修改表注释
execute sp_updateextendedproperty 'MS_Description','诊断记录文件1','user','dbo','table','DiagRecord',null,null;
-- 说明:
-- 1.增加、修改、删除注释调用不同的存储过程
-- 2.增加、修改注释调用的存储过程参数数量和含义相同,删除备注比前两者少了一个“备注内容”的参数
-- 3.为表添加注释相比于为字段添加注释,最后两个参数为null