PowerDesigner 12 根据名称生成注释(完整示例)

本文介绍如何使用PowerDesigner 12为SQL Server 2000生成带有表和列注释的SQL脚本。通过设置自定义DBMS、修改特征树中的表级和列级注释,以及配置生成SQL语句的选项,实现生成包含注释信息的SQL脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言
    以前用过一次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% ' NULL NULL

     列级注释
 

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 ' 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语句后表结构如图:
 

 

 

完毕! 在Sybase AS Anywhere 7中同样的方法修改特征码之后也可以出来注释!至于其他的就没有一一测试了,大家有兴趣可以多试试,接下来研究名称+备注来生成数据库注释,但是苦于找不到资料,不知道如[%R%?[N]]等的语法,欢迎多指教。

 

<think>好的,用户想了解如何使用PowerDesigner自动生成物理数据模型,需要教程或功能介绍。首先,我需要回忆一下PowerDesigner的相关知识,特别是物理数据模型(PDM)的创建步骤。根据之前的引用内容,用户可能已经有一些基础,比如表关系的设计,但需要更详细的生成流程。 用户提到了自动生成,可能是指从现有的数据库逆向工程生成PDM,或者通过脚本自动处理。引用[2]中的VBScript代码是用来批量处理模型中的表和列名称,将注释复制到名称,这可能与用户的问题相关,但用户主要想了解生成PDM的过程,而不是后期处理。 接下来,我应该分步骤说明如何创建PDM,包括使用图形界面和逆向工程的方法。需要确保每个步骤清晰,比如新建模型、选择数据库类型、设计表结构、设置关系等。同时,要提到自动生成可能涉及的脚本或工具,比如使用SQL脚本导入或者从现有数据库逆向生成。 另外,用户可能关心PowerDesigner的具体功能,比如正向工程生成SQL脚本,或者如何配置数据库类型。需要介绍这些功能,并给出操作示例,比如如何设置字段的注释同步到名称,这可能涉及到引用中的VBScript示例,但需要解释清楚如何应用这些脚本。 还要注意用户提到的表关系,如一对一、一对多、多对多,这些在PDM中如何体现,是否需要中间表,这些在之前的引用[1]中有详细说明,应该在回答中引用相关部分,确保用户理解如何正确建立关系。 最后,生成相关问题时要围绕PDM的创建、优化、应用场景以及常见问题处理,确保覆盖用户可能遇到的后续疑问。需要检查是否有遗漏的步骤,比如模型验证、生成报告等,这些也是PDM的重要功能,应该简要提及。</think>以下是通过PowerDesigner创建物理数据模型(PDM)的完整操作指南: ### 一、物理数据模型创建流程 1. **新建物理模型** - 启动PowerDesigner后选择$File > New Model > Physical Data Model$ - 选择目标数据库类型(如MySQL/Oracle/SQL Server) - 支持主流数据库的版本选择(如MySQL 8.0) 2. **表结构设计** ```mermaid flowchart TD A[新建表] --> B(设置表名/编码规则) B --> C{添加字段} C --> D[设置主键/外键] D --> E[设置索引约束] ``` - 双击表对象可设置字段类型(如$VARCHAR(255)$)、默认值、注释 - 通过**Reference**工具建立表间关系(一对多/多对多) 3. **自动生成功能** - **正向工程**:$Database > Generate Database$生成SQL脚本 - **逆向工程**:$File > Reverse Engineer > Database$导入现有数据库结构 ### 二、核心功能说明 1. **自动化脚本处理** 使用VBScript批量处理字段命名(如引用[2]的示例): ```vb For Each col In tab.columns If col.comment <> "" Then col.name = col.comment End If Next ``` 2. **关系可视化** - 一对一关系:直接通过主键关联(如用户表与用户详情表)[^1] - 多对多关系:自动生成中间表(如user_role表)[^1] 3. **模型验证 - 执行$Check Model$自动检测未关联表/字段类型冲突 - 生成$Validation Report$显示完整性约束错误 ### 三、最佳实践建议 1. **注释同步策略** - 启用$Name/Comment同步$选项(Tools > Model Options > Naming Convention) - 建议字段注释使用中文,名称使用英文缩写 2. **版本控制集成** - 支持SVN/Git版本库管理模型文件(.pdm) - 可通过$Extensions > Version Control$配置 3. **自动化文档生成** - 使用$Report > Generate Report$生成HTML/PDF格式设计文档 - 可自定义模板包含表结构/关系图/字段说明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值