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

转载于:https://www.cnblogs.com/xuejianxiyang/p/8926694.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值