如何让PowerDesigner支持含SQL2000的脚本

来源:互联网 发布:matlab vb混合编程 编辑:程序博客网 时间:2024/05/21 07:07

如何让PowerDesigner支持含SQL2000的脚本

新客网 XKER.COM 2008-02-02 来源:赛迪网 30831 收藏本文
温馨提示:注册中国移动飞信-发短信就不花钱啦<script src="http://cpro.baidu.com/cpro/ui/cp.js" type="text/javascript" language="JavaScript"></script>
-
<iframe width="480" scrolling="no" height="160" frameborder="0" align="center,center" src="http://cpro.baidu.com/cpro/ui/uijs.php?fv=9&amp;tn=text_pages_480_160&amp;n=mx163_cpr&amp;rsi1=160&amp;rsi0=480&amp;rad=&amp;rss0=%23trans&amp;rss1=%23trans&amp;rss2=%23333333&amp;rss3=%23333333&amp;rss4=%23333333&amp;rss5=&amp;rss6=%23e10900&amp;rsi5=4&amp;ts=1&amp;at=3&amp;cn=1&amp;if=0&amp;word=http%3A%2F%2Fwww.xker.com%2Fpage%2Fe2008%2F0202%2F46857.html&amp;refer=http%3A%2F%2Fwww.google.cn%2Fsearch%3Faq%3D8%26complete%3D1%26hl%3Dzh-CN%26newwindow%3D1%26rlz%3D1B3GGGL_zh-CNCN272CN272%26q%3Dpowerdesigner%2B%25E8%25BF%259E%25E6%258E%25A5sql2000%26btnG%3DGoogle%2B%25E6%2590%259C%25E7%25B4%25A2%26meta%3D&amp;ev=150994944&amp;ch=3676&amp;lmt=1208167514&amp;csp=1440,900&amp;ccd=32&amp;chi=1&amp;cja=true&amp;cpl=18&amp;cmi=62&amp;cce=true&amp;csl=zh-CN&amp;rt=16" allowtransparency="" marginheight="0" marginwidth="0"></iframe>

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,进入自定义数据模型。

2.PowerDesigner弹出一个对话框,列表框中列出了当前PowerDesigner支持的 数据库模型,我们选择创建一个新的。输入名字SQL SERVER 2000(EXTENDED),选择从现有的SQL SERVER 2000复制,这样SQL SERVER 2000(EXTENDED)就包含了原来SQL SERVER2000模型拥有的所有特征。

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在生成脚本的时候自动替换设计模型中替换变量的值。

5.保存SQL Server 2000(Extended)成一个xdb文件。

6.现在,我们可以创建一个新的Physical Data Model了,数据库模型选SQL Server 2000(Extended)。建立一个表,需要提醒的是,一定要指定一个数据库使用者,一般用dbo(图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可以看到这些注释。

总结

通过这个实践,我们可以了解PowerDesigner是如何处理不同数据库的SQL语法差异的,这和我们开发应用中的参数文件的思路基本 一致。同时,我们也应该熟悉到,PowerDesinger的功能还是比较多和复杂的,只有熟悉这个工具的功能使用,才能真真提高生产效率。

原创粉丝点击