powerdesigner在工作时用到的方法

这篇博客介绍了如何使用PowerDesigner的脚本功能批量修改数据库模型中的元数据。包括同步表和字段的name与comment,以及将表名、字段名及代码统一转换为大写。提供了详细的步骤和示例脚本,适用于数据模型维护和规范化。
摘要由CSDN通过智能技术生成

一、所有表中name同步comment的方法:

操作步骤:工具>execute commands>Edit/Run script 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
' 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
Dim view 'running view 
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

二、powerdesigner表明和表字段小写转为大写

操作流程如上。


'*****************************************************************************
 '文件:powerdesigner.ucase.VBs
 '版本:1.0
 '功能:遍历物理模型中的所有表,将表名、表代码、字段名、字段代码全部由小写改成大写;
 ' 并将序列的名和代码由小写改成大写。
 '用法:打开物理模型,运行本脚本(Ctrl+Shift+X)
 '备注:
 '*****************************************************************************
 dim model 'current model
 set model = ActiveModel
If (model Is Nothing) Then
 MsgBox "There is no current Model"
 ElseIf Not model.IsKindOf(PdPDM.cls_Model) Then
 MsgBox "The current model is not an Physical Data model."
 Else
 ProcessTables model
 ProcessSequences model
 End If
'*****************************************************************************
 '函数:ProcessSequences
 '功能:递归遍历所有的序列
 '*****************************************************************************
 sub ProcessSequences(folder)
 '处理模型中的序列:小写改大写
 dim sequence
 for each sequence in folder.sequences
 sequence.name = UCase(sequence.name)
 sequence.code = UCase(sequence.code)
 next
 end sub
'*****************************************************************************
 '函数:ProcessTables
 '功能:递归遍历所有的表
 '*****************************************************************************
 sub ProcessTables(folder)
 '处理模型中的表
 dim table
 for each table in folder.tables
 if not table.IsShortCut then 
ProcessTable table
 end if
 next
 '对子目录进行递归
 dim subFolder
 for each subFolder in folder.Packages
 ProcessTables subFolder
 next 
end sub
'*****************************************************************************
 '函数:ProcessTable
 '功能:遍历指定table的所有字段,将字段名由小写改成大写,
 ' 字段代码由小写改成大写
 ' 表名由小写改成大写 
'*****************************************************************************
 sub ProcessTable(table)
 dim col
 for each col in table.Columns
 '将字段名由小写改成大写
 col.code = UCase(col.code)
 col.name = UCase(col.name)
 next 
table.name = UCase(table.name)
 table.code = UCase(table.code)
 end sub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值