PowerDesigner互换表结构中NAME和CODE的值

前言:由于一次失误,导致根据Excel模板生成表结构name和code值反了,又使用一个脚本进行更换

一、表结构示例:

二、脚本(推荐保存为".vbs"的文档)

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 code 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 len(tab.code) <> 0 then  
tab.name = tab.code  
end if  
On Error Resume Next  
Dim col 'running column  
dim w 
for each col in tab.columns  
if len(col.code) <>0 then 
w=col.name
col.name =col.code  
col.code=w
end if  
On Error Resume Next  
next  
end if  
next  
end sub  

三、运行脚本,效果如下

注意:点击运行之后会把工作空间中所有表的NAME与CODE值互换,且表名NAME变更为与CODE值相同,这个需要提前记一下表名,以免忘记。

### 如何让 PowerDesigner 自动生成表结构时确保 `name` 字段为英文命名规则 在 PowerDesigner 中,可以通过配置物理数据模型(PDM)的相关属性来实现自动生成的表结构名称以及字段名为英文。以下是具体方法: #### 配置表字段的命名规则 1. **全局设置** 打开 PowerDesigner 的 PDM 模型,在菜单栏中选择 `Tools -> Options...` 进入选项设置界面。导航至 `Modeling -> Physical Modeling` 下找到 `Naming Conventions` 设置项[^5]。在这里可以选择预定义的命名约定或者创建新的命名规则。 2. **调整 SQL 脚本生成行为** 在同一选项窗口下,进入 `Scripts -> SQL Scripts` 页面,检查并修改 `Format` `Case Sensitivity Using Quote` 属性。如果希望避免因大小问题而产生的双引号包裹现象,则应关闭此功能[^3]。 3. **应用到对象级别** 对于特定的对象如表或列,右键点击目标表格/字段,选择 `Properties` 或者直接编辑其属性面板下的 `Name` 及其他相关联的信息(例如 Code)。确认这些均采用英语单词表述形式[^1]。 4. **利用 Excel 导入导出辅助管理** 如果已有部分数据存储在外接文件里(比如 Excel),可借助插件完成批量导入操作,并在此过程中指定语言环境参数以统一风格[^2]。 #### 示例代码展示 下面给出一段简单的 Python 脚本来演示如何自动化更改多个选定实体的名字为纯英文字样: ```python import re def convert_to_english_name(name): # 假设这里有一个函数能够把非英文名字转成对应的英文表达方式 return ''.join([c if c.isalpha() and c.lower() in 'abcdefghijklmnopqrstuvwxyz' else '_' for c in name]) for table in CurrentSelection.Tables: new_table_code = convert_to_english_name(table.Name) table.Code = new_table_code.upper() for column in table.Columns: new_column_code = convert_to_english_name(column.Name) column.Code = new_column_code.title() Repository.Save() ``` 上述脚本遍历当前选中的所有表格及其内部各列,分别调用自定义的方法将其原始名称映射为只含字母的新字符串;同时还将最终结果保存回项目当中去。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小熊猫呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值