zoukankan      html  css  js  c++  java
  • 关于SQL Server数据库中的注释扩展属性的使用

    工作中遇到的问题,为了维护别人做的项目,需要了解该陌生的项目数据库,往往数据存储表的命名比较乱无法通过表命名来猜测其表存在的意义,看起来比较的费劲,相对于程序代码的注释数据库中的表是否也有注释的地方呢?所以我从网上查了下关于表的注释的问题,搜到了一些文章,其中一篇是利用表的扩展属性,通过向表添加扩展属性来进行注释说明。

    该方法主要是利用系统存储过程sp_addextendedproperty来向表添加扩展属性从而将注释信息添加进去。

    通过下文的测试,数据库中的列字段、视图、存储过程、自定义函数均可以通过添加扩展属性来添加注释信息。

    以下是示例代码:

    -------------------系统存储过程sp_addextendedproperty代码--------------------------

    create procedure sys.sp_addextendedproperty
    @name sysname,
    @value sql_variant = NULL,
    @level0type varchar(128) = NULL,
    @level0name sysname = NULL,
    @level1type varchar(128) = NULL,
    @level1name sysname = NULL,
    @level2type varchar(128) = NULL,
    @level2name sysname = NULL
    as

    declare @ret int
    if datalength(@value) > 7500
    begin
    raiserror(15097,-1,-1)
    return 1
    end

    if @name is null
    begin
    raiserror(15600,-1,-1,'sp_addextendedproperty')
    return (1)
    end

    execute @ret = sys.sp_validname @name
    if (@ret <> 0)
    begin
    raiserror(15600,-1,-1,'sp_addextendedproperty')
    return (1)
    end

    BEGIN TRANSACTION

    begin
    EXEC %%ExtendedPropertySet().AddValue(Name = @name, Value = @value, Level0type = @level0type, Level0name = @level0name, Level1type = @level1type, Level1name = @level1name, Level2type = @level2type, Level2name = @level2name)
    IF @@error <> 0
    begin
    COMMIT TRANSACTION
    return (1)
    end
    end
    COMMIT TRANSACTION
    return (0)

    ------------------------------------------------------------------------------------------

    --注释示例:

    use Test
    --利用扩展属性为表添加注释
    exec sys.sp_addextendedproperty
    @name = N'表注释'  --这里写名称
    ,@value =N'这是Test库的一个数据存储表.' --这里写注释内容
    ,@level0type = N'schema'  
    ,@level0Name =N'dbo'  
    ,@level1type = N'table'  
    ,@level1name = N'TableName'  --这里写表名称

    --利用扩展属性为视图添加注释
    exec sys.sp_addextendedproperty
    @name = N'视图注释'
    ,@value =N'这是视图注释的一个示例.'
    ,@level0type = N'schema'
    ,@level0Name =N'dbo'
    ,@level1type = N'view'
    ,@level1name = N'View_Show_ChineseLanguage'

    --利用扩展属性为存储过程添加注释
    exec sys.sp_addextendedproperty
    @name = N'存储过程注释'
    ,@value =N'这是存储过程注释的一个示例.'
    ,@level0type = N'schema'
    ,@level0Name =N'dbo'
    ,@level1type = N'procedure'
    ,@level1name = N'PRO_AnalyzeResult'

    --利用扩展属性为函数添加注释
    exec sys.sp_addextendedproperty
    @name = N'函数注释'
    ,@value =N'这是函数注释的一个示例.'
    ,@level0type = N'schema'
    ,@level0Name =N'dbo'
    ,@level1type = N'function'
    ,@level1name = N'FUN_AnalyzeResult'

     --查询扩展属性

    (未完。。。)

  • 相关阅读:
    微信客服系统开发SDK使用教程-给好友发消息任务
    微信客服系统开发SDK使用教程-客户端选择微信号登陆/登出通知
    微信客服系统开发SDK使用教程-客户端退出通知
    php优秀框架codeigniter学习系列——CI_Security类学习
    php优秀框架codeigniter学习系列——CI_Output类的学习
    php优秀框架codeigniter学习系列——CI_Router类学习
    My IELTS result has come out 我的雅思成绩出来了
    Travel notes in Vietnam
    asp.net学习
    makefile简单学习
  • 原文地址:https://www.cnblogs.com/forevertime/p/4626210.html
Copyright © 2011-2022 走看看