標籤:
在powerBuilder中建立一個Physical Data Model,在其中建立一個使用者表,資訊如所示:
此時的SQL語句可從其中的Preview視圖中得到,如所示:
這個時候產生的sql語句是沒有注釋的,而且sql語句可能也不是適合自己所對應的資料庫語言。此時可以通過以下方法來產生注釋並且選擇所需的資料庫語言。
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視圖視窗中已經如所示
2、更換資料庫sql語句。
選擇Database---》change current DBMS,在DBMS中選擇對應的資料庫,如Microsoft SQL Server 2005,點擊確定後,然後選擇Database---》Generate Database選項,在彈出的視窗中選擇產生sql檔案的儲存路徑,點擊確定,則可看到產生的sql語言完全是按照sqlserver2005的標準。
PowerDesigner匯出SQL時自動產生注釋