在powerBuilder中新建一個Physical Data Model,在其中新建一個用戶表,信息如下圖所示:
此時的SQL語句可從其中的Preview視圖中得到,如下圖所示:
這個時候生成的sql語句是沒有注釋的,而且sql語句可能也不是適合自己所對應(yīng)的數(shù)據(jù)庫語言。此時可以通過以下方法來生成注釋并且選擇所需的數(shù)據(jù)庫語言。
1、為sql生成注釋,操作如下,我用的是PowerDesigner12.5,在其中選擇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 ExplicitValidationMode = TrueInteractiveMode = im_BatchDim mdl ' the current model' get the current active model Set mdl = ActiveModel If (mdl Is Nothing) ThenMsgBox "There is no current Model "ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) ThenMsgBox "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 nextend ifnextDim view 'running view for each view in folder.Views if not view.isShortcut then view.comment = view.name end ifnext' go into the sub-packages Dim f ' running folder For Each f In folder.Packages if not f.IsShortcut then ProcessFolder f end ifNextend sub
點擊run后,可以看到剛剛的preview視圖窗口中已經(jīng)如下圖所示
2、更換數(shù)據(jù)庫sql語句。
選擇Database---》change current DBMS,在DBMS中選擇對應(yīng)的數(shù)據(jù)庫,如Microsoft SQL Server 2005,點擊確定后,然后選擇Database---》Generate Database選項,在彈出的窗口中選擇生成sql文件的保存路徑,點擊確定,則可看到生成的sql語言完全是按照sqlserver2005的標準。