MS SQL Server如何添加表备注填充sp_tables返回的remark字段
SQL Server 不支持标准SQL的COMMENT ON TABLE语法,它通过扩展属性来存储表、字段等对象的备注信息,sp_tables返回的remark字段读取的就是表的MS_Description扩展属性值。
添加表备注的操作方法
你可以使用系统存储过程sp_addextendedproperty添加表备注,示例代码如下:
EXEC sp_addextendedproperty @name = N'MS_Description', -- 固定属性名,用于标识对象备注 @value = N'TEST', -- 你要添加的备注内容 @level0type = N'SCHEMA', -- 一级对象类型为schema @level0name = N'dbo', -- 表所属的schema,默认是dbo,根据实际情况修改 @level1type = N'TABLE', -- 二级对象类型为表 @level1name = N'mytable'; -- 目标表名
修改已有备注的方法
如果表已经添加过备注,使用sp_updateextendedproperty修改:
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'修改后的备注内容', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'mytable';
通用覆盖写法
如果不确定备注是否已存在,想直接覆盖写入,可以先判断删除再新增:
-- 判断备注已存在则先删除 IF EXISTS ( SELECT 1 FROM sys.extended_properties WHERE major_id = OBJECT_ID(N'dbo.mytable') AND minor_id = 0 AND name = N'MS_Description' ) EXEC sp_dropextendedproperty @name = N'MS_Description', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'mytable'; -- 新增备注 EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'TEST', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'mytable';
操作完成后再执行exec sp_tables 'mytable',就能在remark字段看到你写入的备注内容,不需要额外创建数据字典表维护。
内容的提问来源于stack exchange,提问作者Klynch
相关产品推荐
相关产品推荐

