PowerDesigner设置所有int主键自增脚本
'*****************************************************************************
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
End
If
'*****************************************************************************
'函数: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的所有字段,如果该字段是主键但不是外键,则设置为Identity
'*****************************************************************************
sub
ProcessTable(table)
dim col
for each col in
table.Columns
'对于是主键且不是外键的字段设置为Identity(自增长类型)
if col.Primary
and not col.ForeignKey and instr(lcase(col.datatype),"integer") > 0 then
col.Identity = true
end if
next
end sub
保存为文件A_SetIdentity.vbs放到安装目录下的vb scripts文件夹
powerdesigner的pdm中ctrl+shift+x 打开运行脚本对话框 菜单栏中选择打开文件 找到A_Setidentity.vbs执行
70EF4733-6445-4BAC-9F92-AD8A086A5398|From:http://www.cnblogs.com/xuejianxiyang/p/8926694.html
作者:xuejianxiyang
出处:http://xuejianxiyang.cnblogs.com
关于作者:Heaven helps those who help themselves.
本文版权归原作者和博客园共有,欢迎转载,但未经原作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。