PowerDesigner使用技巧

name 填充到 comment

把 pd 中 name 的值自动添加到 comment 里面(如果 comment 为空,则填入 name,否则保留不变),这样可以避免已有的注释丢失。通过 Shift + Ctrl + x 快捷方式打开脚本运行窗口执行以下脚本(vb.net 语法):

Option Explicit
ValidationMode = True
InteractiveMode = im_Batch

Dim mdl ' the current model
Set mdl = ActiveModel  ' get the current active model

If (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 mdl
End If

' This routine copy name into comment for each table, each column and each view of the current folder
Private sub ProcessFolder(folder)
	Dim Tab ' running table
	for each Tab in folder.tables
	    if not tab.isShortcut then
	        if trim(tab.comment)="" then ' 如果有表的注释,则不改变它. 如果没有表注释,则把name添加到注释里面
	            tab.comment = tab.name
	        end if
	
	        Dim col ' running column
	        for each col in tab.columns
	            if trim(col.comment)="" then  '如果col的comment为空,则填入name. 如果已有注释,则不添加;这样可以避免已有注释丢失. 
	                col.comment= col.name
	            end if
	        next
	    end if
	next
	
	Dim view 'running view
	for each view in folder.Views
	    if not view.isShortcut and trim(view.comment)="" then
	        view.comment = view.name
	    end if
	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
    Next
end sub
生成数据库脚本

通常情况下我们需要把 pd 中的 PDM(Physical Data Model)导出为我们需要数据库的脚本,各个数据库脚本大同小异,下面以 Sql Server 为例:
打开路径:Database > Edit Current DBMS > General > Script > Objects

DROP
/*==============================================================*/
/* 判断要创建的表名是否存在,Sql Server                         */
/*==============================================================*/
IF EXISTS(SELECT 1 FROM sys.objects WHERE object_id('[%QUALIFIER%]%TABLE%','U') IS NOT NULL) 
    DROP TABLE [%QUALIFIER%]%TABLE%
GO

/*==============================================================*/
/* 判断要创建的表名是否存在,MySQL                              */
/*==============================================================*/
/*
IF EXISTS(SELECT 1 FROM sysobjects WHERE id=object_id('[%QUALIFIER%]%TABLE%') AND TYPE='U')
    DROP TABLE [%QUALIFIER%]%TABLE%
GO
*/
表注释生成语句

Table > TableComment

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N%.60qA:COMMENT%, @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'[%QUALIFIER%]%TABLE%'
GO
列注释生成语句

Column > ColumnComment

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N%.60qA:COMMENT% , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'[%QUALIFIER%]%TABLE%' , @level2type=N'COLUMN',@level2name=N'%COLUMN%'
GO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值