• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 自動設置Identity屬性的代碼(PowerDesigner腳本)

    發表于:2007-05-25來源:作者:點擊數: 標簽:代碼IdentityPowerDesi性的自動
    '***************************************************************************** '文件: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 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 then
             col.Identity = true
          end if
       next
    end sub

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>