PowerDesigner 批量添加字段、转换大小写、导出Excel脚本工具

本文介绍了如何在PowerDesigner中进行批量操作,包括修改表和字段的大小写、数据类型,批量导出Excel以及为特定或所有表添加字段的步骤,提供了一种提升数据库架构设计效率的方法。
摘要由CSDN通过智能技术生成


执行

选中模型击菜单“Tools->Execute Commands -> Edit/Run Script…",或者快捷键(Ctrl+Shift+X)

批量修改表大小写,字段大小写和数据类型

'Option Explicit On
ValidationMode = True
InteractiveMode = im_Batch
Dim mdl ' the current model
' 取得当前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
 
Private Sub ProcessFolder(folder)
    '处理表
    Dim Tab,str1
    Dim tt  
    For Each Tab In folder.tables
        
            tt = Tab.code
         'if(not tt is nothing) then        
            'str1 = left(tt, 1)
            'str1 = UCase(str1)
            'Dim str2
            'str2 = right(tt , len(tt) - 1)
            'str2 = LCase(str2)
            'Tab.code = str1 + str2

            '修改字段名
            Dim col
            For Each col In Tab.columns
                If (col.code <> "") Then
                    Dim code
                    code = col.code
                    Dim code1
                    code1 = left(code, 1)
                    code1 = UCase(code1)
                    Dim code2
                    code2 = right(code, len(code) - 1)
                    code2 = UCase(code2)
                    col.code = code1 + code2
                End If
                if(StrComp(col.code,"EXCEPTION_NOTICE") = 0)then
                  col.datatype = "varchar(100)"
                end if
                if(StrComp(col.code,"EXCEPTION_NOTICE") = 0)then
                  col.code = "EXCEPTION_NOTICE_PERSON"
                end if
            Next
            ' End If
    Next
    ' 同理处理视图
    ' Dim view
    '   for each view in folder.Views
    '   if not view.isShortcut then
    ' view.code = 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.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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值