zoukankan      html  css  js  c++  java
  • PowerDesigner 12 根据名称生成注释(完整示例)


    前言

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

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

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

    正文
        这里从头开始以贴图附代码的方式来完整的展示用PD生产SQL并生产数据库表结构的整个过程。   
        第一步:    新建自定义DBMS: 

    这里只是修改部分参数,选择拷贝自Micorsoft SQL SERVER 2000。然后如图保存:

    接着会弹出如下交互窗口:

        第二步:修改关键特征树,在 Script\Objects\Table\TableComment和Script\Objects\Column\ColumnComment位置的直修改如下:
            表级注释
    EXECUTE sp_addextendedproperty N'MS_Description', N'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%'NULLNULL
         列级注释
    EXECUTE sp_addextendedproperty N'MS_Description', N'%Name%', N'user', N'%OWNER%', N'table', N'%TABLE%', N'column', N'%COLUMN%'
            如图:

            确定。
        第三步:新的Physical Data Model(PDM),如下就不详细接受只贴图了:



    注意:这里建表的时候最好选定所有者,没有自己新建一个。
        第四步:配置参数,生成SQL 语句。工具栏(Tools)—>生成数据库(Generate Database)

    勾上以上复选框,否则当你备注为空的时候注释出不来;反之,如果你备注不为空那么名称(Name)才能作为注释出现!!

    去掉上面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'NULLNULL
    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语句后表结构如图:


    完毕! 在Sybase AS Anywhere 7中同样的方法修改特征码之后也可以出来注释!至于其他的就没有一一测试了,大家有兴趣可以多试试,接下来研究名称+备注来生成数据库注释,但是苦于找不到资料,不知道如[%R%?[N]]等的语法,欢迎多指教。
  • 相关阅读:
    Weblogic魔法堂:AdminServer.lok被锁导致启动、关闭域失败
    CSS魔法堂:盒子模型简介
    .Net魔法堂:提取注释生成API文档
    CSS魔法堂:Position定位详解
    CMD魔法堂:获取进程路径和PID值的方法集
    CentOS6.5菜鸟之旅:识别NTFS分区
    CentOS6.5菜鸟之旅:安装rpmforge软件库
    CMD魔法堂:CMD进入指定目录
    CentOS6.5菜鸟之旅:VIM插件NERDtree初探
    CSS魔法堂:选择器及其优先级
  • 原文地址:https://www.cnblogs.com/over140/p/1084327.html
Copyright © 2011-2022 走看看