首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

批量将PowerDesigner中表字段由小写成为大写

2013-07-01 
批量将PowerDesigner中表字段由小写变成大写由于建表的时候木有注意,在生产SQL时pd在列名上都加了“”这个东

批量将PowerDesigner中表字段由小写变成大写

由于建表的时候木有注意,在生产SQL时pd在列名上都加了“”这个东东,故只有通过以下VB脚本即可批量修改,在Tools=>Execute Commands下的Edit/Run Scripts,或者通过Ctrl+Shift+X运行以下脚本即可:

'*****************************************************************************
?'文件: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

热点排行