首页 > 数据库 > SQL Server > 正文

PowerDesigner-VBSrcipt-自动设置主键,外键名等(SQL Server)

2024-08-31 00:55:35
字体:
来源:转载
供稿:网友
PowerDesigner-VBSrcipt-自动设置主键,外键名等(SQL Server)

在PowerDesigner中的设计SQL Server 数据表时,要求通过vbScript脚本实现下面的功能:

主键:pk_TableName

外键:fk_TableName_ForeignKeyColumnList

当字段作为主键,而且类型为smallint,int,bigint,那么要设置Identity =true.

当字段作为主键,而且类型为uniqueidentifier,那么要设置默认值为newid(),而且设置扩展属性rowguidcol.

Option ExplicitValidationMode = TrueInteractiveMode = im_BatchDim mdl ' the current modelSet mdl = ActiveModelIf (mdl Is Nothing) Then   MsgBox "There is no current Model"ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then   MsgBox "The current model is not an Physical Data model."Else   PRocessFolder mdlEnd IfPrivate sub ProcessFolder(folder)    'Tables   Dim tab   for each tab in folder.tables              dim col       for each col in tab.columns                         '自動設置Identity            if col.primary =true and (col.datatype ="smallint" or col.datatype = "int"  or col.datatype = "bigint") then               col.identity=true                           '自動設置ROWGUIDCOL               elseif col.primary=true and col.datatype="uniqueidentifier" then               col.DefaultValueDisplayed="newid()"                  col.SetExtendedAttributeText "ExtRowGUIDCol",true            end if                   next                 '自動設置主鍵      dim ky      for each ky in tab.Keys            if ky.primary =true then               ky.Name="pk_"+tab.Name               ky.Code=ky.Name               ky.ConstraintName=ky.Name               ky.Clustered=true            end if      next                          next      '自動設置外鍵   dim ref   for each ref in folder.References      ref.name="fk_"+ref.ChildTable.Name +"_"+ref.ForeignKeyColumnList      ref.Code=ref.Name      ref.ForeignKeyConstraintName=ref.name   next      ' go into the sub-packages   Dim f ' running folder   For Each f In folder.Packages      if not f.IsShortcut then         ProcessFolder f      end if   Nextend sub


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表