PowerDesigner 16.5对SQL Server 2012 生成数据

系统 1803 0
原文: PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题

团队合作设计一套系统数据模型,创建了PDM后,Table、View、Store Procedure等都创建好了,且创建了多个Schema方便管理这些数据库对象,但Table、view、Column等对象有Comment时(用来在团队不同成员间共享描述信息)

生成数据库时会得到一个提示"不支持扩展属性,或对象不存在",分析发现异常在类似以下语句:

      
        if
      
      
        exists
      
      (
      
        select
      
      
        1
      
      
        from
      
       sys.extended_properties p 
      
        where
      
      
        

      p.major_id 
      
      
        =
      
      
        object_id
      
      (
      
        '
      
      
        Environment.Resource
      
      
        '
      
      
        )

  
      
      
        and
      
       p.minor_id 
      
        =
      
       (
      
        select
      
       c.column_id 
      
        from
      
       sys.columns c 
      
        where
      
       c.
      
        object_id
      
      
        =
      
       p.major_id 
      
        and
      
       c.name 
      
        =
      
      
        '
      
      
        ResourceCode
      
      
        '
      
      
        )

)


      
      
        begin
      
      
        execute
      
       sp_dropextendedproperty 
      
        '
      
      
        MS_Description
      
      
        '
      
      
        ,

   
      
      
        '
      
      
        user
      
      
        '
      
      , 
      
        '
      
      
        Environment
      
      
        '
      
      , 
      
        '
      
      
        table
      
      
        '
      
      , 
      
        '
      
      
        Resource
      
      
        '
      
      , 
      
        '
      
      
        column
      
      
        '
      
      , 
      
        '
      
      
        ResourceCode
      
      
        '
      
      
        end
      
      
        execute
      
       sp_addextendedproperty 
      
        '
      
      
        MS_Description
      
      
        '
      
      
        ,

   
      
      
        '
      
      
        资源编码
      
      
        '
      
      
        ,

   
      
      
        '
      
      
        user
      
      
        '
      
      , 
      
        '
      
      
        Environment
      
      
        '
      
      , 
      
        '
      
      
        table
      
      
        '
      
      , 
      
        '
      
      
        Resource
      
      
        '
      
      , 
      
        '
      
      
        column
      
      
        '
      
      , 
      
        '
      
      
        ResourceCode
      
      
        '
      
      
        go
      
    

分析原因,发现是由于采用了Schema(上述代码中的Environment),所以sp_addextendedproperty存储过程的第三个参数就应该是SCHEMA而不是user。查询相关资料发现以上SQL语句是基于Powerdesigner自带的对应的.xdb文件生成的,如下图是Column注释信息的SQL代码模板,对应的xdb模板文件存放在powerdesigner安装路径的Sybase\PowerDesigner 16\Resource Files\DBMS\sqlsv2012.xdb

如上图,每个Column的Comment信息均通过以上代码模板生成,所以只需要修改代码模板(将sp_addextendedproperty的第三个参数值由user修改为schema即可)即可让所有对象的Comment生成语句得到修正。

注:在win7以上系统中需要使用管理员权限运行powerdesigner才能将修改后的模板文件保存。

 

PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论