PowerDesigner 12 ---根据名称生成注释

前言
    以前用过一次PowerDesigner(后面都简称PD了),当时还是用的11版本的PD,没有深入研究,简单的试用了一下。近来项目要用,同事已经把数据库设计好了,但是生成出来的数据库表结构确没有注释信息。研究几个小时后终于试出来了,不知道搜索的方法不对还是确实没有根据PD的名称来生成数据库注释信息的文章。

环境
    Sybase.PowerDesigner 12 汉化版
    Microsoft SQL Server 2000 (sp3)

鸣谢
    1.    如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释的角本

正文
    这里从头开始以贴图附代码的方式来完整的展示用PD生产SQL并生产数据库表结构的整个过程。   
    第一步:    新建自定义DBMS: PowerDesigner 12 ---根据名称生成注释_第1张图片
PowerDesigner 12 ---根据名称生成注释_第2张图片PowerDesigner 12 ---根据名称生成注释_第3张图片
这里只是修改部分参数,选择拷贝自Micorsoft SQL SERVER 2000。然后如图保存:
PowerDesigner 12 ---根据名称生成注释_第4张图片
接着会弹出如下交互窗口:
PowerDesigner 12 ---根据名称生成注释_第5张图片
    第二步:修改关键特征树,在 Script\Objects\Table\TableComment和Script\Objects\Column\ColumnComment位置的直修改如下:
        表级注释

EXECUTE  sp_addextendedproperty N ' MS_Description ' , N ' %COMMENT% ' , N ' user ' , N ' %OWNER% ' , N ' table ' , N ' %TABLE% ' NULL NULL

     列级注释

EXECUTE  sp_addextendedproperty N ' MS_Description ' , N ' %Name% ' , N ' user ' , N ' %OWNER% ' , N ' table ' , N ' %TABLE% ' , N ' column ' , N ' %COLUMN% '

        如图:
PowerDesigner 12 ---根据名称生成注释_第6张图片
        确定。
    第三步:新的Physical Data Model(PDM),如下就不详细接受只贴图了:
PowerDesigner 12 ---根据名称生成注释_第7张图片
PowerDesigner 12 ---根据名称生成注释_第8张图片
PowerDesigner 12 ---根据名称生成注释_第9张图片
注意:这里建表的时候最好选定所有者,没有自己新建一个。
    第四步:配置参数,生成SQL 语句。工具栏(Tools)—>生成数据库(Generate Database)
PowerDesigner 12 ---根据名称生成注释_第10张图片
勾上以上复选框,否则当你备注为空的时候注释出不来;反之,如果你备注不为空那么名称(Name)才能作为注释出现!!
PowerDesigner 12 ---根据名称生成注释_第11张图片
去掉上面User前面的勾,否则到时候生成SQL语句执行的时候可能出现如下错误:

服务器: 消息  15181 ,级别  16 ,状态  1 ,过程 sp_revokedbaccess,行  43
无法除去数据库所有者。
服务器: 消息 
15007 ,级别  16 ,状态  1 ,过程 sp_grantdbaccess,行  98
登录 'dbo' 不存在。

最后点确定生成,PD最终生成的SQL代码如下:

/* ============================================================== */
/*  DBMS name:      SQL SERVER 2000 [EXT]                         */
/*  Created on:     2008-2-28 2:49:38                             */
/* ============================================================== */


if   exists  ( select   1
            
from   sysobjects
           
where   id  =   object_id ( ' dbo.Employee ' )
            
and    type  =   ' U ' )
   
drop   table  dbo.Employee
go

/* ============================================================== */
/*  Table: Employee                                               */
/* ============================================================== */
create   table  dbo.Employee (
   ID                   
int                    not   null ,
   Username             
varchar ( 20 )           null ,
   Password             
varchar ( 20 )           null ,
   
constraint  PK_EMPLOYEE  primary   key  (ID)
)
go

EXECUTE  sp_addextendedproperty N ' MS_Description ' , N ' Employee ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' NULL NULL
go

EXECUTE  sp_addextendedproperty 
N
' MS_Description ' , N ' 主键ID ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' ID '
go

EXECUTE  sp_addextendedproperty 
N
' MS_Description ' , N ' 用户名 ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' Username '
go

EXECUTE  sp_addextendedproperty 
N
' MS_Description ' , N ' 密码 ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' Password '
go

如果你生成的SQL语句没有之后面这几条执行sp_addextendedproperty的语句,那么本次你将不能生成带注释的SQL语句,请仔细检查步骤及细节。
    第五步:执行PD生成的SQL语句,生成表结构。
        在查询分析器中执行生成的SQL语句后表结构如图:
PowerDesigner 12 ---根据名称生成注释_第12张图片

你可能感兴趣的:(powerDesigner)