POWERDESIGNER 向 SQL SERVER 添加表注释和列注释_第1页
POWERDESIGNER 向 SQL SERVER 添加表注释和列注释_第2页
POWERDESIGNER 向 SQL SERVER 添加表注释和列注释_第3页
POWERDESIGNER 向 SQL SERVER 添加表注释和列注释_第4页
POWERDESIGNER 向 SQL SERVER 添加表注释和列注释_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、POWERDESIGNER 向 SQL SERVER 添加表注释和列注释摘要:如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释的脚本转PowerDesigner 是Sybase公司著名的产品,我从16-bit的windows开始,就接触并使用这个工具,应该说是有很深的感情。PowerDesigner是 DBA和软件架构师设计的利器,随着版本的不断升级,PowerDesigner提供了更多更强大的功能。仅以本篇为开始,向大家介绍一些 PowerDesinger中的使用技巧,帮助大家更好地更有效率地使用这个CASE工具。 问题的提出 我曾经在很多网上看到有朋

2、友问起,在PowerDesigner的Physical Model design中,除了Oracle外,选择其他数据库模型,最后生成建数据库脚本的时候,不会自动生成记录表和列注释信息的数据库脚本代码。 请允许我先解释一下这个问题的概念,我们通过PowerDesigner设计oracle数据库,最后得到的脚本可以像下面这样,其中的comment语句就是我上面指出的在oracle中保存注释信息的脚本语句,在oracle中执行后,可以通过查询oracle的数据字典得到这些信息。这样做的好处是,以后查看表结构比较方便,不需要从数据库文档资料中去寻找了,对于团队开发来说,有应用的意义。 /*=*/ /*

3、 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 Serve

4、r也有这样的语句,但是,大家往往发现选择了数据库模型是SQL Server,在自动生成建库脚本的时候,即使你选上了生成comment语句的选项,powerdesigner也不会帮你自动生成,是PowerDesigner不支持SQL Server么,答案显然是否认的。 问题的解决 PowerDesigner这个工具可以支持任何一种关系型数据库的模型设计,因为,在PowerDesigner中每一种数据库模型的特性定义都存储在一个xdb文件中,我们可以在PowerDesigner_Install_Home/Resource Files/DBMS下可以找到。当然,我们也可以自己创立一个新的xdb,定义

5、好我们想支持的数据库模型的特性。明白了这一点,这个问题的答案就显而易见。 下面我就简单地说明一下,我使用的是PowerDesinger9.5企业版。Sybase有些简化版本(如SQL Moduler)就不能自定义xdb,请大家注意。 1 从菜单TOOLS->RESOUCES->DBMS,进入自定义数据模型,参见图1。 图1 2 PowerDesigner弹出一个对话框,列表框中列出了当前PowerDesigner支持的 数据库模型图2。我们选择创立一个新的。输入名字SQL SERVER 2000(EXTENDED),选择从现有的SQL SERVER 2000复制,这样SQL SER

6、VER 2000(EXTENDED)就包含了原来SQL SERVER2000模型拥有的所有特征图3。 图2 图3 3 接下来,我们就需要为SQL Server 2000(Extended)添加支持自动生成表和列注释代码的特性。PowerDesinger把定义的特性用树状结构组织了起来(图4),本篇要做的工作就是定义Script代码特征。我们需要修改ScriptObjectsTableTableComment和ScriptObjectsColumnColumnComment中的脚本特征代码。 4 SQL Server 2000在数据库中保存表和列注释是通过调用系统存储过程sp_addextend

7、edproperty来做的。那么我们只需要,分别写上 表级的注释代码是: EXECUTE sp_addextendedproperty NMS_Description, N%COMMENT%, Nuser, N%OWNER%, Ntable, N%TABLE%, NULL, NULL 列级的注释代码是 EXECUTE sp_addextendedproperty NMS_Description, N%COMMENT%, Nuser, N%OWNER%, Ntable, N%TABLE%, Ncolumn, N%COLUMN% 大家看看这些代码,立刻就明白是怎么回事了(图5)。%COMMENT%

8、之类的就是相当于替换变量,PowerDesigner在生成脚本的时候自动替换设计模型中替换变量的值。 图4 图5 5 保存SQL Server 2000(Extended)成一个xdb文件。 6 现在,我们可以创立一个新的Physical Data Model了,数据库模型选SQL Server 2000(Extended)。建立一个表,需要提醒的是,一定要指定一个数据库使用者,一般用dbo图6。我们可以为表和列都添加上注释。 图6 7 生成建库脚本,菜单Databases->Generate Database。在图7所示的对话框中,注意要选中comment选项。点击确定,就得到最终的建

9、库脚本。翻开看看,我们看到了PowerDesinger根据我们告诉它的规那么生成了对应的代码 EXECUTE sp_addextendedproperty NMS_Description, N雇员信息, Nuser, Ndbo, Ntable, NEmployee, NULL, NULL go EXECUTE sp_addextendedproperty NMS_Description, N主键ID,自动增加, Nuser, Ndbo, Ntable, NEmployee, Ncolumn, NEmployeeID go . 8 我们在SQL Server 2000中执行这个角本,然后通过En

10、terprise Manager可以看到这些注释。 图7 图8 小结 通过这个实践,我们可以了解PowerDesigner是如何处理不同数据库的SQL语法差异的,这和我们开发应用中的参数文件的思路根本一致。同时,我们也应该认识到,PowerDesinger的功能还是比较多和复杂的,只有熟悉这个工具的功能使用,才能真真提高生产效率。 /=1 从菜单TOOLS->RESOUCES->DBMS,进入自定义数据模型2 PowerDesigner弹出一个对话框,列表框中列出了当前PowerDesigner支持的据库模型。我们选择创立一个新的。输入名字SQL SERVER (EXTENDED)

11、,选择从现有的SQL SERVER 2005复制,这样SQL SERVER 2000(EXTENDED)就包含了原来SQL SERVER2005模型拥有的所有特征3 接下来,我们就需要为SQL Server 2005(Extended)添加支持自动生成表和列注释代码的特性。我们需要修改ScriptObjectsTableTableComment和ScriptObjectsColumnColumnComment中的脚本分别写上表级的注释代码是: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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论