Powerdesigner设计表生成SQL脚本(带有注释)

Powerdesigner设计表生成SQL脚本(带有注释)

功能描述

我们在PowerDesigner中设计好数据库表,并且每个表中的字段都会有相应的注释,可是在我们在导出sql语句后,却发现没有添加字段注释的相关sql语句(例如:EXECUTE sp_addextendedproperty N'MS_Description', N'字段注释', N'user', N'dbo', N'table', N'表名', N'column', N'字段名'

解决方案

步骤: Powerdesigner中选择Tools—–>Excute commands—->Edit/Run Script 在打开窗口中添加以下信息

'******************************************************************************
 
'* File: name2comment.vbs
 
'* Purpose: Database generation cannot use object names anymore
 
' in version 7 and above.
 
' It always uses the object codes.
 
'
 
' In case the object codes are not aligned with your
 
' object names in your model, this script will copy
 
' the object Name onto the object Comment for
 
' the Tables and Columns.
 
'
 
'* Title:
 
'* Version: 1.0
 
'* Company: Sybase Inc.
 
'******************************************************************************
 
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
 
'把表明作为表注释,其实不用这么做
 
tab.comment = tab.name
 
Dim col ' running column
 
for each col in tab.columns
 
'把列name和comment合并为comment
 
col.comment= col.name
 
next
 
end if
 
next
 
Dim view 'running view
 
for each view in folder.Views
 
if not view.isShortcut 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

执行完成后再生成sql,此时已有注释。