zoukankan      html  css  js  c++  java
  • [转]关于PowerDesigner反向工程SQL Server2000数据库时生成注释的解决方法

    本人使用的是PowerDesigner 10,在反向工程Microsoft SQL Server2000数据库时,数据库字段的注释说明总是不能正确生成。经过一段时间摸索和观察,终于实现了该功能,特与各位分享。

      具体实现方法如下:首先新建DBMS方便起见,可以先复制Microsoft SQL Server 2000,可以这样操作(tools-Resource-DBMS可以看到如下窗口了,执行New操作命令)

      新建DBMS时可以复制现有的DBMS

      把新建的DBMS保存起来就可以进行真正的改代码操作了。

    在接下来出现的DBMS Properties窗口中找到:Script-Object-Column 在Column下找到 SqlListQuery键,把下面的代码复制到DBMS Properties窗口右边的Value文本框中,确定就OK了。

    脚本代码:

    {OWNER, TABLE, S, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, DEFAULT, COMMENT, ExtIdentityIncrement, ExtIdentitySeed}

    select
    u.name,
    o.name,
    c.colid,
    c.name,
    case when (s.usertype < 100) then s.name else x.name end,
    c.prec,
    c.length,
    c.scale,
    z.text ,
    case (c.status & 8) when 8 then 'NULL' else 'NOTNULL' end,
    case (c.status & 128) when 128 then 'identity' else '' end,
    case when (s.usertype < 100) then '' else s.name end,
    v.text,
    CONVERT(varchar, ISNULL(p.[value], '')) AS text,
    case (c.status & 128) when 128 then ident_incr(u.name + '.' + o.name) else null end,
    case (c.status & 128) when 128 then ident_seed(u.name + '.' + o.name) else null end
    from
    dbo.sysusers u
    join dbo.sysobjects o on (o.uid = u.uid and o.type in ('U', 'S', 'V'))
    join dbo.syscolumns c on (c.id = o.id)
    left outer join sysproperties p on c.id = p.id and c.colid = p.smallid
    left outer join dbo.systypes s on (c.usertype = s.usertype and s.xtype = c.xtype and c.usertype >= 0)
    left outer join dbo.systypes x on (s.usertype > 100 and s.xtype = x.xtype and x.usertype not in (0, 18, 80) and x.usertype < 100)
    left outer join dbo.syscomments z on (z.id = o.id and z.number = c.colid)
    left outer join dbo.sysobjects d on (d.id = c.cdefault and d.category <> 0)
    left outer join dbo.syscomments v on (v.id = d.id)
    where 1 = 1
    [ and u.name = %.q:OWNER%]
    [ and o.name=%.q:TABLE%]
    order by 1, 2, 3

    后面具体怎么反向工程数据库就不用说了。我来解释一下这其中的技巧在什么地方。关于这段Select查询语句是如何使用,在这里我不再说明,主要说 明查询出来的内容如何才能把它填充到数据模型的属性窗口中。这里的重点是在各字段的排列顺序与第一行代码各关键字的排列顺序上。我在原来 Microsoft SQL Server2000 DBMS的查询语句基础上加了CONVERT(varchar, ISNULL(p.[value], '')) AS text 这一个字段,他的排列顺序是在倒数第三位,那么,对应的也要在第一行关键字部分的倒数第三位中加上COMMENT属性,说明把这个字段的值填充到 COMMENT属性中去。

    那么还有关于如何在生成Microsoft SQL Server 2000数据库脚本时自动生成注释的方法也在此说明一下。在Column 下建立Text键ColumnComment,并把这段代码复制到 Value文本框中去就可以了:EXECUTE sp_addextendedproperty N'MS_Description', N'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%', N'column', N'%COLUMN%' 该部分是参考其他网友的文章我不再仔细说明,怕有人扔砖头。

    ////////////////////////////////////////////////////////////////////////

    个人小结:

    创建反射工程时选择刚才创建的数据源类型,如下图所示

    后面的操作就没有什么区别了!!

  • 相关阅读:
    干掉 LaTeX !用BookDown写本书
    Java面试指北!13个认证授权常见面试题/知识点总结!| JavaGuide
    写了个简洁的Typora+Markdown简历模板
    有哪些可以提高代码质量的书籍推荐?
    京东数科面试真题:常见的 IO 模型有哪些?Java 中的 BIO、NIO、AIO 有啥区别?
    国内有哪些顶级技术团队的博客值得推荐?
    两万字长文总结,梳理 Java 入门进阶那些事
    藏在栈里的金丝雀
    surging 如何使用流媒体服务
    低代码平台--基于surging开发微服务编排流程引擎构思
  • 原文地址:https://www.cnblogs.com/zsyzsj/p/2048592.html
Copyright © 2011-2022 走看看