SQL Server中怎么为索引添加注释信息,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
如何通过扩展属性为SQLServer的索引添加注释信息
选中一个索引:属性,扩展属性,在表格的名称,值里分别加上:"说明","这个索引的实际用处"即可。
假如一个索引同时做了几件事,可以这样添加注释:
(1)插入数据时,根据date+code判断指定的数据是否存在(2)后台根据date统计一段时间的汇总数据。
这样当别人不清楚一个索引的作用时,只要看一下该索引的扩展属性即可。
假如要查看一个数据库里的索引注释列表可以这样查询:
selectobject_name(major_id)astable_name,(selectnamefromsys.indexeswhereobject_id=major_idandindex_id=minor_id)asindex_name,name,valuefromsys.extended_propertieswhereclass_desc='INDEX'
在开发过程中,我们一般会在开发数据库上,指定各个索引的注释,假如要把这儿的注释同步到生产服务器,可以通过脚本来做:
EXECsp_addextendedproperty@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level2type=N'INDEX',@level1name=N'表名',@level2name=N'索引名',@name=N'说明',@value=N'索引的实际用处'
如何通过扩展属性为SQLServer的索引添加注释信息
更新:sp_addextendedproperty
删除:sp_dropextendedproperty
调用这儿的sp_存储过程可以完成任务,但稍微有点繁琐,这时可以自己创建一个存储过程,方便给索引添加注释信息:
-----------------------------------------------------
--给指定表的指定索引设置扩展属性(默认的扩展属性名为:'说明'),方便为索引添加注释
----------------------------------------------------
ALTERPROCEDURE[dbo].[SetIndexDesc]@tablenamenvarchar(200),@indexnamenvarchar(200),@descvaluenvarchar(500)ASBEGIN
---先检查索引上是否存在注释信息,假如存在,先删除
ifexists(select*fromsys.extended_propertieswhereclass_desc='INDEX'andobject_name(major_id)=@tablenameand(selectnamefromsys.indexeswhereobject_id=major_idandindex_id=minor_id)=@indexname)beginEXECsp_dropextendedpropertyN'说明',N'SCHEMA',N'dbo',N'TABLE',@tablename,N'INDEX',@indexname;end
---在索引上创建注释信息
EXECsp_addextendedproperty@level0type=N'SCHEMA',@level0name=N'dbo',@level1type=N'TABLE',@level2type=N'INDEX',@level1name=@tablename,@level2name=@indexname,@name=N'说明',@value=@descvalueEND
调用时:
execSetIndexDesc'表名','索引名',N'注释信息'
假如需要把开发数据库的索引注释列表同步到生产服务器,可以这样做:
select'execSetIndexDesc'''+object_name(major_id)+''','''+(selectnamefromsys.indexeswhereobject_id=major_idandindex_id=minor_id)+''',N'''+convert(nvarchar(500),value)+''''fromsys.extended_propertieswhereclass_desc='INDEX'andname=N'说明'
把输出的脚本列表,在生产服务器上执行一下即可。
关于SQL Server中怎么为索引添加注释信息问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。