自動設置Identity屬性的代碼(PowerDesigner腳本)
'***************************************************************************** '文件:SetIdentity. vb s '版本:1.0 '版權:floodzhu (floodzhu@hotmail.com),2004.12.31 '功能:遍歷物理模型中的所有表,把是主鍵但不是外鍵的字段設置為Identity,適
'*****************************************************************************
'文件:SetIdentity.vbs
'版本:1.0
'版權:floodzhu (floodzhu@hotmail.com),2004.12.31
'功能:遍歷物理模型中的所有表,把是主鍵但不是外鍵的字段設置為Identity,適用于
' 物理模型為MS Sql Server的類型。
'用法:打開物理模型,運行本腳本(Ctrl+Shift+X)
'備注:我有兩個習慣,一個是把所有表的主鍵都定義為自增長的int類型,另一個是定義
' 一個Domain叫ID,在設計概念模型時把所有的PrimaryKey字段的Domain設置為ID
' 類型。
'
' 如果我進行了上面的設置,則在轉化為物理模型時需要手工設置Identity,
' 最笨的方法是一個表一個表進行設置,最簡單的方法是在物理模型中直接對Domain
' 進行設置。對Domain進行設置有一個小缺點,就是如果該字段不是主鍵也不是生
' 成的外鍵,而是一個一般字段,例如表示樹狀結構的PID,則它也會被設置為
' Identity,不過由于這種字段比較少,而且在生成數據庫時會發生錯誤可以提醒
' 你進行糾正,所以可以輕松過關而不至于隱藏錯誤,所以是一種好方法。
'
' 用下面的代碼可以給你第三種選擇,而不會發生任何錯誤。
'*****************************************************************************dim model
'current modelset 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 then
col.Identity = true
end if
next
end sub
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|