在用PowerDesigner时,常常在NAME或Comment中写中文在Code中写英文,Name只会显示给我们看,Code会使用在代码中,但Comment中的文字会保存到数据库TABLE的Description中,有时候我们写好了Name再写一次Comment很麻烦,以下两段代码就可以解决这个问题。
在PowerDesigner中PowerDesigner->Tools->Execute Commands->Edit/Run Scripts(Ctrl Shift X),然后将下面的脚本粘贴进去,并运行,即可
代码一:将Name中的字符COPY至Comment中
'******************************************************************************
'* File: name2comment.vbs
'* Purpose: Database generation cannot use object names anymore
' in version 7 and above.
' It always uses the object codes.
'
' In case the object codes are not aligned with your
' object names in your model, this script will copy
' the object Name onto the object Comment for
' the Tables and Columns.
'
'* Title:
'* Version: 1.0
'* Company: Sybase Inc.
'******************************************************************************
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
'******************************************************************************
'* File: name2comment.vbs
'* Purpose: Database generation cannot use object names anymore
' in version 7 and above.
' It always uses the object codes.
'
' In case the object codes are not aligned with your
' object names in your model, this script will copy
' the object Name onto the object Comment for
' the Tables and Columns.
'
'* Title:
'* Version: 1.0
'* Company: Sybase Inc.
'******************************************************************************
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl ' the current model
' get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If
' This routine copy name into comment for each table, each column and each view
' of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.comment = tab.name
Dim col ' running column
for each col in tab.columns
col.comment= col.name
next
end if
next
' of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.comment = tab.name
Dim col ' running column
for each col in tab.columns
col.comment= col.name
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
end if
next
for each view in folder.Views
if not view.isShortcut then
view.comment = view.name
end if
next
' go into the sub-packages
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
代码二:将Comment中的字符COPY至Name中
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl ' the current model
' get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If
Private sub ProcessFolder(folder)
On Error Resume Next
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.name = tab.comment
Dim col ' running column
for each col in tab.columns
if col.comment="" then
else
col.name= col.comment
end if
next
end if
next
On Error Resume Next
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.name = tab.comment
Dim col ' running column
for each col in tab.columns
if col.comment="" then
else
col.name= col.comment
end if
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.name = view.comment
end if
next
for each view in folder.Views
if not view.isShortcut then
view.name = view.comment
end if
next
' go into the sub-packages
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
代码三:将Name中的字符COPY至Comment中(优化)
'把pd中那么name想自动添加到comment里面
'如果comment为空,则填入name;如果不为空,则保留不变,这样可以避免已有的注释丢失.
'把pd中那么name想自动添加到comment里面
'如果comment为空,则填入name;如果不为空,则保留不变,这样可以避免已有的注释丢失.
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl ' the current model
' get the current active model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no current Model "
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "The current model is not an Physical Data model. "
Else
ProcessFolder mdl
End If
' This routine copy name into comment for each table, each column and each view
' of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
if trim(tab.comment)="" then '如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面.
tab.comment = tab.name
end if
Dim col ' running column
for each col in tab.columns
if trim(col.comment)="" then '如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失.
col.comment= col.name
end if
next
end if
next
' of the current folder
Private sub ProcessFolder(folder)
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
if trim(tab.comment)="" then '如果有表的注释,则不改变它.如果没有表注释.则把name添加到注释里面.
tab.comment = tab.name
end if
Dim col ' running column
for each col in tab.columns
if trim(col.comment)="" then '如果col的comment为空,则填入name,如果已有注释,则不添加;这样可以避免已有注释丢失.
col.comment= col.name
end if
next
end if
next
Dim view 'running view
for each view in folder.Views
if not view.isShortcut and trim(view.comment)="" then
view.comment = view.name
end if
next
for each view in folder.Views
if not view.isShortcut and trim(view.comment)="" then
view.comment = view.name
end if
next
' go into the sub-packages
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
Dim f ' running folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
Powerdesigner表名及字段的大小写转换脚本
用PowerDesigner设计表结构时,若一不小心在写表结构和字段的时候用了大小写混合或者小写。PowerDesigner则在生成SQL时会自动在表名上使用双引号。例如:
/*==============================================================*/
/* Table: "test" */
/*==============================================================*/
create table "test" (
"username" varchar2(24),
"full_name" varchar2(24)
);
ORACLE会认为该表和字段使用小写字母命名,但是ORACLE默认是使用大写字母的,这样会导致有些用法用不了(比如修改字段名,数据修改等)。下面提供段脚本代码可以把PowerDesigner中的小写字母变为大写字母。
/* Table: "test" */
/*==============================================================*/
create table "test" (
"username" varchar2(24),
"full_name" varchar2(24)
);
ORACLE会认为该表和字段使用小写字母命名,但是ORACLE默认是使用大写字母的,这样会导致有些用法用不了(比如修改字段名,数据修改等)。下面提供段脚本代码可以把PowerDesigner中的小写字母变为大写字母。
使用方法:进入PowerDesigner,打开需要转换的PDM,在菜单栏找到:Tools – Excute Commands – Edit/Run Script,或者直接按Ctrl+Shift+X调出脚本执行窗口,输入下边的代码就可以了。
代码如下:
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl ' 当前模型
' 获取当前模型
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "没有打开一个模型"
ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then
MsgBox "当前模型不是一个PDM"
Else
'调用处理程序
ProcessFolder mdl
End If
'调用的处理程序
Private sub ProcessFolder(folder)
Dim Tab '要处理的表
for each Tab in folder.Tables
' if not Tab.isShortcut then
' Tab.code = tab.name
'表名处理,前边添加前缀,字母小写
Tab.name= UCase(Tab.name)
Tab.code= UCase(Tab.code)
Dim col ' 要处理的列
for each col in Tab.columns
'列名称和code全部小写,大写诗UCase
col.code= UCase(col.code)
col.name= UCase(col.name)
next
'end if
next
' 处理视图
' Dim view 'running view
' for each view in folder.Views
' if not view.isShortcut then
' view.code = view.name
' end if
' next
' 递归进入 sub-packages
Dim f ' sub folder
For Each f In folder.Packages
if not f.IsShortcut then
ProcessFolder f
end if
Next
end sub
相关推荐
PowerDesigner列名、注释内容互换.,是反向工程后将英文注释替换为数据的描述信息
"显示注释程序"正是为了解决这个问题而存在的,它是一个VBS(Visual Basic Script)脚本,能够帮助用户在PowerDesigner中查看并管理对象的注释。 在数据库设计过程中,注释是非常重要的元素,它们提供了对表、字段...
当PowerDesigner连接好数据库,并生成模型后,在PowerDesigner用Ctrl+Shift+x快捷键打开,然后将脚本内容粘贴运行,就可以开始生成数据库中存在的注释了
使用步骤如下:1、在物理模型下按ctrl+shift+x, 2、在弹出的对话框左上方选择文件夹样式的图标 3、选择脚本文件,并run。
"PowerDesigner脚本(注释名称互转,逆向注释转名称)"就是针对这种需求提供的解决方案。 首先,我们需要理解PowerDesigner中的基本概念。在PowerDesigner中,模型(Model)是数据库设计的核心,它可以包含多个实体...
PowerDesigner 导出的 SQL 带列注释,导入到 MySQL 中列注释不见了的处理方法 在使用 PowerDesigner 导出 SQL 文件时,如果包含列注释,可能会在导入到 MySQL 数据库中时丢失。这是因为 PowerDesigner 导出的 SQL ...
打开powerdesigner工具,点开tools->execute-commands->edit/run script,导入文件
PowerDesigner 添加数据源、反向工程、表显示注释 PowerDesigner 是一款功能强大的数据建模工具,能够帮助用户设计、开发和维护复杂的数据系统。下面是关于 PowerDesigner 添加数据源、反向工程、表显示注释的知识...
Acommenttoname.vbs可能负责将注释内容与表或列的名字关联起来;而Atable-code2name.vbs可能是用于将编码(如编号)转换为对应的名称,使数据库元素更加易读。这些脚本可以通过PowerDesigner的自定义脚本功能进行...
根据给定的信息,本文将详细解释如何在PowerDesigner中通过编写脚本来实现将数据库对象(如表、视图等)的注释转换为相应的名称。这种方法对于自动化文档更新或者进行模型标准化非常有用。 ### PowerDesigner简介 ...
### PowerDesigner连接MySQL互相导入及显示中文注释详解 #### 一、安装ODBC驱动 在进行PowerDesigner与MySQL之间的连接之前,首先需要确保已经安装了ODBC (Open Database Connectivity) 驱动。ODBC驱动是实现不同...
powerdesigner逆向工程导入mysql脚本生成PDM带全注释
标题中的"powerdesigner生成含注释的sql"指的是使用PowerDesigner这款强大的数据库设计工具来创建包含注释的SQL脚本。PowerDesigner是一款流行的数据建模工具,它可以帮助IT专业人员进行概念数据模型(CDM)、物理...
一个小脚本,可以让powerdesigner显示的ER图添加注释,不过需要做一些设置
PowerDesigner 中将汉字表名和列名转换为汉语拼音抽头的方法 PowerDesigner 是一款功能强大且流行的数据建模工具,广泛应用于数据 warehousing、数据 mining 和业务流程分析等领域。然而,在使用 PowerDesigner ...
在PowerDesigner中,可以通过执行脚本来自动化一些重复性任务,例如将字段的名称(Name)自动填充到其注释(Comment)中。以下是对这个过程的详细解释: 首先,打开PowerDesigner,点击菜单栏上的“Tools”(工具)...
2. **定制报告内容**:在报告向导中,可以精细调整报告中包含的信息,如表名、表注释、列名、列类型、列长度及列注释等。通过拖放和排序功能,确保报告的布局符合需求。 3. **生成报告**:完成定制后,使用“生成...
使用PowerDesigner我经常只设置了Name和code,但是数据库里显示不了Name,显示的是描述,及comment。所以我可以通过执行一个脚本批量把列名(name)复制为描述(comment)。
### PowerDesigner逆向工程生成PDM(物理数据模型)及中文列名表名转换为注释 #### 一、PowerDesigner及其逆向工程概述 PowerDesigner是一款强大的CASE工具,广泛应用于数据库设计、业务流程建模等领域。通过...
根据提供的信息,虽然文章的描述部分为“NULL”,但通过对部分内容的分析,可以看出文章重点介绍了在PowerDesigner中编写和执行脚本,以及如何使用这些脚本进行name和comment的互换。这个过程是通过PowerDesigner的...