共计 1946 个字符,预计需要花费 5 分钟才能阅读完成。
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 中怎么为索引添加注释信息问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。