PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面

每次我用PowerDesigner设计数据库时,都只是注释了一些复杂的字段,一些简单的字段根本就不用注释,见到code就知道其中的意思,奈何本人英文水平有限,加上一些英文单词太长进行了简写,我就想要把字段名称name这列复制到没有注释的comment列里面,这样的话通过数据库可视化工具navicat就可以直接看到了。 数据库是ORACLE的话还好说,MySql就恼火了。最后终于找到通过脚本去生成。步骤如下:

创建表:

比如:先创建一张学生表student,有如下字段,我仅注释了性别字段。
PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面_第1张图片

打开编辑脚本的界面:

Tools->Execute Commands->Edit/Run Scripts(快捷键:Ctrl+Shift+X)
PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面_第2张图片
打开一个空白的脚本编辑界面,如下图:
PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面_第3张图片

将如下脚本代码复制到空白的代码块内:

'把pdm中的字段名称name自动添加到comment里面
'如果comment为空,则填入name;如果不为空,则保留不变,这样可以避免已有的注释丢失.

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

PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面_第4张图片
脚本如果复制有问题的话可以去下载:
//download.csdn.net/download/zhangkai19910815/12446998

点击 Run 执行脚本即可。

这里也可以将脚本保存,下次设计完pdm以后就可以直接open打开,再次执行。
PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面_第5张图片
这里我将脚本保存为name2comment.vbs, 下次直接找到这个脚本就可以了。
PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面_第6张图片

查看执行脚本后的结果:

可以看到没有注释的comment列里已经填充了字段名称。
PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面_第7张图片

最后可以生成建表的SQL语句了

PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面_第8张图片

你可能感兴趣的:(PowerDesigner16.5生成SQL语句建表时如何将字段名name列复制到备注comment注释里面)