第一步:修改导出SQL
打开Power Designer ,选择 Database->Edit Current DBMS…打开对话框,找到Script->Objects->Table->SqlListQuery,打开后修改value中的sql语句,修改结果如下:
{OWNER, TABLE, TABLE_TYPE, COMMENTS}
select
t.owner,
t.table_name,
c.table_type,
c.comments
from
sys.all_all_tables t,
sys.USER_TAB_COMMENTS c
where
not exists (select 1 from sys.all_mviews s where s.owner = t.owner and t.table_name in (s.mview_name, s.update_log))
and t.iot_name is null
and nvl(t.dropped, 'NO') = 'NO'
and t.table_name = c.table_name(+)
[ and t.table_name=%.q:TABLE%]
[ and t.owner=%.q:SCHEMA%]
order by
t.owner, t.table_name
第二步:设置code不跟随name改变
选择菜单中Tools->General Options…,在打开的窗口中找到Dialog,去掉Name to Code mirroring 前面的勾,点击OK。
第三步:用脚本将name设置成comments
选择菜单中Tools->Excute Commands -> Edit/Run Scripts… 在打开的窗口中粘贴如下脚本,点击Run按钮。
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 code 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 len(tab.comment) <> 0 then
tab.name = tab.comment
end if
On Error Resume Next
Dim col 'running column
for each col in tab.columns
if len(col.comment) <>0 then
col.name =col.comment
end if
On Error Resume Next
next
end if
next
end sub