'*****************************************************************************
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