[转]:如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释

本文主要是介绍[转]:如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释的角本
PowerDesigner是Sybase公司著名的产品,我从16-bit的windows开始,就接触并使用这个工具,应该说是有很深的感情。PowerDesigner是DBA和软件架构师设计的利器,随着版本的不断升级,PowerDesigner提供了更多更强大的功能。仅以本篇为开始,向大家介绍一些PowerDesinger中的使用技巧,帮助大家更好地更有效率地使用这个CASE工具。
问题的提出
我曾经在很多网上看到有朋友问起,在PowerDesigner的Physical Model design中,除了Oracle外,选择其他数据库模型,最后生成建数据库脚本的时候,不会自动生成记录表和列注释信息的数据库脚本代码。
请允许我先解释一下这个问题的概念,我们通过PowerDesigner设计oracle数据库,最后得到的脚本可以像下面这样,其中的comment语句就是我上面指出的在oracle中保存注释信息的脚本语句,在oracle中执行后,可以通过查询oracle的数据字典得到这些信息。这样做的好处是,以后查看表结构比较方便,不需要从数据库文档资料中去寻找了,对于团队开发来说,有应用的意义。

/*===============================================*/
/* Table: EMP                                                   */
/*==============================================*/
create table EMP  (
   "EmpID"              NUMBER,
   "EmpName"            VARCHAR2(50),
   SEX                  CHAR(1)
)
/
comment on table EMP is '职员信息'
/
comment on column EMP."EmpID" is '职员编号'
/
comment on column EMP."EmpName" is '职员姓名'
/
comment on column EMP.SEX is '性别  F:  M:'
/
SQL Server也有这样的语句,但是,大家往往发现选择了数据库模型是SQL Server,在自动生成建库脚本的时候,即使你选上了生成comment语句的选项,powerdesigner也不会帮你自动生成,是PowerDesigner不支持SQL Server么,答案显然是否定的。
问题的解决
PowerDesigner这个工具可以支持任何一种关系型数据库的模型设计,因为,在PowerDesigner中每一种数据库模型的特性定义都存储在一个xdb文件中,我们可以在[PowerDesigner_Install_Home]/Resource Files/DBMS下可以找到。当然,我们也可以自己创建一个新的xdb,定义好我们想支持的数据库模型的特性。明白了这一点,这个问题的答案就显而易见。
下面我就简单地说明一下,我使用的是PowerDesinger9.5企业版。Sybase有些简化版本(如SQL Moduler)就不能自定义xdb,请大家注意。
1 从菜单TOOLS->RESOUCES->DBMS,进入自定义数据模型,参见图1。
CSDN_Dev_Image_2004-2-171628501.png
图1
2 PowerDesigner弹出一个对话框,列表框中列出了当前PowerDesigner支持的
数据库模型(图2)。我们选择创建一个新的。输入名字SQL SERVER 2000(EXTENDED),选择从现有的SQL SERVER 2000复制,这样SQL SERVER 2000(EXTENDED)就包含了原来SQL SERVER2000模型拥有的所有特征(图3)。
CSDN_Dev_Image_2004-2-171628503.png
图2
CSDN_Dev_Image_2004-2-171628505.png
图3
3 接下来,我们就需要为SQL Server 2000(Extended)添加支持自动生成表和列注释代码的特性。PowerDesinger把定义的特性用树状结构组织了起来(图4),本篇要做的工作就是定义Script代码特征。我们需要修改Script\Objects\Table\TableComment和Script\Objects\Column\ColumnComment中的脚本特征代码。
4 SQL Server 2000在数据库中保存表和列注释是通过调用系统存储过程sp_addextendedproperty来做的。那么我们只需要,分别写上

表级的注释代码是:
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'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%', N'column', N'%COLUMN%'
大家看看这些代码,立刻就明白是怎么回事了(图5)。 %COMMENT%之类的就是相当于替换变量, PowerDesigner在生成脚本的时候自动替换设计模型中替换变量的值。
CSDN_Dev_Image_2004-2-171628507.png
图4
CSDN_Dev_Image_2004-2-171628509.png
图5
5 保存SQL Server 2000(Extended)成一个xdb文件。
6 现在,我们可以创建一个新的Physical Data Model了,数据库模型选SQL Server 2000(Extended)。建立一个表,需要提醒的是,一定要指定一个数据库使用者,一般用dbo(图6)。我们可以为表和列都添加上注释。
CSDN_Dev_Image_2004-2-1716285011.png
图6
7 生成建库脚本,菜单Databases->Generate Database。在图7所示的对话框中,注意要选中comment选项。点击确定,就得到最终的建库脚本。打开看看,我们看到了PowerDesinger根据我们告诉它的规则生成了对应的代码

EXECUTE sp_addextendedproperty N'MS_Description', N'雇员信息', 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'EmployeeID'
go
….
8 我们在SQL Server 2000中执行这个角本,然后通过Enterprise Manager可以看到这些注释。
CSDN_Dev_Image_2004-2-1716285013.png
图7
CSDN_Dev_Image_2004-2-1716285015.png
图8
小结
通过这个实践,我们可以了解PowerDesigner是如何处理不同数据库的SQL语法差异的,这和我们开发应用中的参数文件的思路基本一致。同时,我们也应该认识到,PowerDesinger的功能还是比较多和复杂的,只有熟悉这个工具的功能使用,才能真真提高生产效率。

转载于:https://www.cnblogs.com/Xuzq/archive/2006/05/08/393971.html

这篇关于[转]:如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291131

相关文章

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre