完整版见https://jadyer.github.io/2015/06/03/powerdesigner-copy-name-to-comment/
/** * PowerDesigner里面将表中name列值拷贝到comment列 * @see -------------------------------------------------------------------------------------------------------------------- * @see pd中的pdm默认生成sql时,字段是没有凝视的..想要凝视的话,有2个方法 * @see 1.也是推荐的 * @see pdm中双击打开一个Table,到Columns选项卡中,按快捷键Ctrl+U,找到Comment并勾选就可以 * @see 并且该操作设置一次就可以了,以后在新的Table中也会自己主动出现Comment * @see 设置完成后,在加入表字段时一并写上凝视,这样生成的sql中字段就会有凝视了 * @see 2.运行vbs脚本 * @see 相较第一种方法,该方法缺点是每次生成sql前,都要运行一遍这个脚本 * @see 运行方式为Tools-->Execute Commands-->Edit/Run Scripts,或者直接快捷键Ctrl+Shift+X * @see 将以下的脚本拷进去运行一遍,也能够保存为name2comment.vbs(下一次再运行的话,就能够Ctrl+O再选择name2comment.vbs就可以) * @see -------------------------------------------------------------------------------------------------------------------- * @create 2015-6-3 下午7:53:38 * @author 玄玉<http://blog.csdn.net/jadyer> */
' 假设comment为空,则填入name;假设comment不为空,则保留不变.这样能够避免已有的凝视丢失. Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the current model ' get the current active model Set mdl = ActiveModel 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