我想根据Primary复选框的状态重命名PowerDesigner LDM / PDM中的列。更具体地说,如果选中Primary,我希望将列从“oldname”重命名为“id_oldname”。
我认为可以使用自定义检查/自动修复脚本,例如“MSSQLSRV2008 :: Profile \ Column \ Custom Checks \ Identity Seed and Increment validity”中的脚本,但我真的不是VBScript专家:)
有没有一种简单的方法可以在PowerDesigner 15中实现这一目标?
答案 0 :(得分:1)
解决方案非常简单。不幸的是,它并不完美,因为PowerDesigner在某些情况下无法执行事件处理程序(原因不明)。下面的小vbscript应该能够处理它。将创建扩展模型定义文件并将其附加到项目。该脚本是表元类的验证事件处理程序(尽管它更像是自动修复而不是验证)。
Function %Validate%(obj, ByRef message)
' Implement your object validation rule on <parent> here
' and return True in case of success, False otherwise with a message
dim col
for each col in obj.columns
if col.Primary = true then
if left(col.name,3) <> "id_" then
With col
.name = "id_" & .name
.SetNameAndCode .Name, "", True
End With
end if
else
if left(col.name,3) = "id_" then
with col
.name = right(.name, len(.name)-3)
.SetNameAndCode .Name, "", True
end with
end if
end if
next
%Validate% = True
End Function
归功于提供原始代码的Richard Kier。谢谢,理查德。
答案 1 :(得分:0)
可以编写VBScript来搜索对象模型,查找作为主键成员的列并重命名它们。
或者:
可以显示列的列表 (右键单击包或 模型,列表 - &gt;专栏)
按control-U(或点击 提出漏斗和铅笔图标) 自定义列和过滤器。
您现在应该看到属于键的所有列。您可以类似地使用通配符过滤不合规的名称。您也可以选择多行并同时重命名它们。
答案 2 :(得分:0)
有一个更简单的方法。
该工具显示更新的模型。