欢迎来到天天文库
浏览记录
ID:11414312
大小:324.00 KB
页数:8页
时间:2018-07-11
《让powerdesigner支持自动生成含sql server 2000的表和列注释的脚本》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、让PowerDesigner支持自动生成含SQLServer2000的表和列注释的脚本Sybase2008-11-2612:50:27阅读25评论0 字号:大中小 订阅PowerDesigner是Sybase公司著名的产品,我从16-bit的Windows开始,就接触并使用这个工具,应该说是有很深的感情。PowerDesigner是DBA和软件架构师设计的利器,随着版本的不断升级,PowerDesigner提供了更多更强大的功能。仅以本篇为开始,向大家介绍一些PowerDesinger中的使用技巧,帮助
2、大家更好地更有效率地使用这个CASE工具。问题的提出我曾经在很多网上看到有朋友问起,在PowerDesigner的PhysicalModeldesign中,除了Oracle外,选择其他数据库模型,最后生成建数据库脚本的时候,不会自动生成记录表和列注释信息的数据库脚本代码。请允许我先解释一下这个问题的概念,我们通过PowerDesigner设计oracle数据库,最后得到的脚本可以像下面这样,其中的comment语句就是我上面指出的在oracle中保存注释信息的脚本语句,在oracle中执行后,可以通过查询
3、oracle的数据字典得到这些信息。这样做的好处是,以后查看表结构比较方便,不需要从数据库文档资料中去寻找了,对于团队开发来说,有应用的意义。/*===============================================*//*Table:EMP*//*==============================================*/createtableEMP("EmpID"NUMBER,"EmpName"VARCHAR2(50),SEXCHAR(1))/comment
4、ontableEMPis'职员信息'/commentoncolumnEMP."EmpID"is'职员编号'/commentoncolumnEMP."EmpName"is'职员姓名'/commentoncolumnEMP.SEXis'性别F:女M:男'/SQLServer也有这样的语句,但是,大家往往发现选择了数据库模型是SQLServer,在自动生成建库脚本的时候,即使你选上了生成comment语句的选项,powerdesigner也不会帮你自动生成,是PowerDesigner不支持SQLServer么
5、,答案显然是否定的。问题的解决PowerDesigner这个工具可以支持任何一种关系型数据库的模型设计,因为,在PowerDesigner中每一种数据库模型的特性定义都存储在一个xdb文件中,我们可以在[PowerDesigner_Install_Home]/ResourceFiles/DBMS下可以找到。当然,我们也可以自己创建一个新的xdb,定义好我们想支持的数据库模型的特性。明白了这一点,这个问题的答案就显而易见。下面我就简单地说明一下,我使用的是PowerDesinger9.5企业版。Sybase
6、有些简化版本(如SQLModuler)就不能自定义xdb,请大家注意。1从菜单TOOLS->RESOUCES->DBMS,进入自定义数据模型,参见图1。 图12PowerDesigner弹出一个对话框,列表框中列出了当前PowerDesigner支持的数据库模型(图2)。我们选择创建一个新的。输入名字SQLSERVER2000(EXTENDED),选择从现有的SQLSERVER2000复制,这样SQLSERVER2000(EXTENDED)就包含了原来SQLSERVER2000模型拥有的所有特征(图3)。
7、 图2 图33接下来,我们就需要为SQLServer2000(Extended)添加支持自动生成表和列注释代码的特性。PowerDesinger把定义的特性用树状结构组织了起来(图4),本篇要做的工作就是定义Script代码特征。我们需要修改ScriptObjectsTableTableComment和ScriptObjectsColumnColumnComment中的脚本特征代码。4SQLServer2
8、000在数据库中保存表和列注释是通过调用系统存储过程sp_addextendedproperty来做的。那么我们只需要,分别写上表级的注释代码是:EXECUTEsp_addextendedpropertyN'MS_Description',N'%COMMENT%',N'user',N'%OWNER%',N'table',N'%TABLE%',NULL,NULL列级的注释代码是EXECUTEsp_addextendedprope
此文档下载收益归作者所有