PowerDesigner的操作經常忘記,是以把常用的功能記錄下來備忘。
PowerDesigner從資料庫反轉的時候,預設不帶注釋,需要先進行修改。

輸入如下腳本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<code>{OWNER, </code><code>TABLE</code><code>, S, </code><code>COLUMN</code><code>, DTTPCODE, LENGTH, </code><code>SIZE</code><code>, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, </code><code>DEFAULT</code><code>, COMMENT, ExtIdentityIncrement, ExtIdentitySeed}</code>
<code>select</code>
<code>u.</code><code>name</code><code>,</code>
<code>o.</code><code>name</code><code>,</code>
<code>c.colid,</code>
<code>c.</code><code>name</code><code>,</code>
<code>case</code> <code>when</code> <code>(s.usertype < 100) </code><code>then</code> <code>s.</code><code>name</code> <code>else</code> <code>x.</code><code>name</code> <code>end</code><code>,</code>
<code>c.prec,</code>
<code>c.length,</code>
<code>c.scale,</code>
<code>z.text ,</code>
<code>case</code> <code>(c.status & 8) </code><code>when</code> <code>8 </code><code>then</code> <code>'NULL'</code> <code>else</code> <code>'NOTNULL'</code> <code>end</code><code>,</code>
<code>case</code> <code>(c.status & 128) </code><code>when</code> <code>128 </code><code>then</code> <code>'identity'</code> <code>else</code> <code>''</code> <code>end</code><code>,</code>
<code>case</code> <code>when</code> <code>(s.usertype < 100) </code><code>then</code> <code>''</code> <code>else</code> <code>s.</code><code>name</code> <code>end</code><code>,</code>
<code>v.text,</code>
<code>CONVERT</code><code>(</code><code>varchar</code><code>, </code><code>ISNULL</code><code>(p.[value], </code><code>''</code><code>)) </code><code>AS</code> <code>text,</code>
<code>case</code> <code>(c.status & 128) </code><code>when</code> <code>128 </code><code>then</code> <code>ident_incr(u.</code><code>name</code> <code>+ </code><code>'.'</code> <code>+ o.</code><code>name</code><code>) </code><code>else</code> <code>null</code> <code>end</code><code>,</code>
<code>case</code> <code>(c.status & 128) </code><code>when</code> <code>128 </code><code>then</code> <code>ident_seed(u.</code><code>name</code> <code>+ </code><code>'.'</code> <code>+ o.</code><code>name</code><code>) </code><code>else</code> <code>null</code> <code>end</code>
<code>from</code>
<code>dbo.sysusers u</code>
<code>join</code> <code>dbo.sysobjects o </code><code>on</code> <code>(o.uid = u.uid </code><code>and</code> <code>o.type </code><code>in</code> <code>(</code><code>'U'</code><code>, </code><code>'S'</code><code>, </code><code>'V'</code><code>))</code>
<code>join</code> <code>dbo.syscolumns c </code><code>on</code> <code>(c.id = o.id)</code>
<code>left</code> <code>outer</code> <code>join</code> <code>sys.extended_properties p </code><code>on</code> <code>c.id = p.major_id </code><code>and</code> <code>c.colid = p.minor_id</code>
<code>left</code> <code>outer</code> <code>join</code> <code>dbo.systypes s </code><code>on</code> <code>(c.usertype = s.usertype </code><code>and</code> <code>s.xtype = c.xtype </code><code>and</code> <code>c.usertype >= 0)</code>
<code>left</code> <code>outer</code> <code>join</code> <code>dbo.systypes x </code><code>on</code> <code>(s.usertype > 100 </code><code>and</code> <code>s.xtype = x.xtype </code><code>and</code> <code>x.usertype </code><code>not</code> <code>in</code> <code>(0, 18, 80) </code><code>and</code> <code>x.usertype < 100)</code>
<code>left</code> <code>outer</code> <code>join</code> <code>dbo.syscomments z </code><code>on</code> <code>(z.id = o.id </code><code>and</code> <code>z.number = c.colid)</code>
<code>left</code> <code>outer</code> <code>join</code> <code>dbo.sysobjects d </code><code>on</code> <code>(d.id = c.cdefault </code><code>and</code> <code>d.category <> 0)</code>
<code>left</code> <code>outer</code> <code>join</code> <code>dbo.syscomments v </code><code>on</code> <code>(v.id = d.id)</code>
<code>where</code> <code>1 = 1</code>
<code>[ </code><code>and</code> <code>u.</code><code>name</code> <code>= %.q:OWNER%]</code>
<code>[ </code><code>and</code> <code>o.</code><code>name</code><code>=%.q:</code><code>TABLE</code><code>%]</code>
<code>order</code> <code>by</code> <code>1, 2, 3</code>
下一步,點選“完成”——“測試資料庫”——傳回OK。
點選“OK”後,将會開始進行反轉PD字典工作。
PowerDesigner設計時表顯示注釋選項: 標明編輯的表,右鍵- >Properties- >Columns- >Customize Columns and Filter(或直接用快捷鍵Ctrl+U)- >Comment(前面打勾)- >OK
如果出現錯誤“[Microsoft][ODBC SQL Server Driver][SQL Server]無法預定義語句。 SQLSTATE = 37000”
解決辦法:選擇菜單欄中的Database -> Change Current DBMS ,給DBMS選擇SQL Server2005。
一般快捷鍵
F4 打開檢查模型視窗,檢查模型
F5 如果圖視窗内的圖改變過大小,恢複為原有大小即正常大小
F6 放大圖視窗内的圖
F7 縮小圖視窗内的圖
F8 在圖視窗内中檢視全部圖内容
F9 預覽圖視窗
F10 在圖視窗中以一幅視圖的高度顯示圖Shift+單擊對象 連續選擇對象
alt+0 顯示或隐藏浏覽器視窗
alt+1 顯示或隐藏輸出視窗
alt+2 顯示或隐藏結果清單視窗
ctrl+輕按兩下或ctrl+"+" 打開包圖
ctrl+tab 在圖視窗中切換大小,在文本中插入制表符或 在屬性表視窗中切換标簽頁
ctrl+page up/page down 在屬性表标簽頁中切換标簽頁
ctrl+移動視窗 禁止Docking特性
ctrl+b 在浏覽器視窗中查找對象
ctrl+d 打開選擇圖視窗,選擇圖
ctrl+e 打開報表清單視窗
ctrl+f 打開查找對象視窗,查找對象
ctrl+j 在對象符号中調整文本
ctrl+F4 關閉目前圖視窗
ctrl+alt+F4 關閉模型
ctrl+F6 在多個屬性表視窗間切換
ctrl+shift+F6 在多個屬性表視窗間反向切換
ctrl+u 回到父圖
shift+F2 打開Workspace
shift+F3 儲存Workspace
shift+F4 關閉Workspace
對象操作快捷鍵表
Del 删除對象(需确認)
shift+Del 删除對象(無需确認)
alt+Enter 打開所選對象的屬性表
ctrl+k 粘貼為快捷方式
ctrl+h 選擇連接配接:水準連接配接
ctrl+l 選擇連接配接:垂直連接配接
ctrl+改變大小 保持對象的中心改變對象大小
ctrl+shift+改變大小 保持對象的中心改變對象大小,并保持與原對象的長寬比例
工具面闆快捷鍵表
輕按兩下光标工具(Point)
選擇圖中的所有符号或ctrl+a
輕按兩下删除工具(Delete) 删除所有已選擇的符号(需确認)
輕按兩下移動工具(Grabber) 顯示全局視圖輕按兩下對象工具
選擇同類型的所有符号shift+輕按兩下對象工具 保持前一個選擇,添加選擇同類型的所有符号
拖放快捷鍵表
shift+移動項 移動符号
ctrl+移動項 複制符号
ctrl+shift+移動項 建立快捷方式清單視窗快捷鍵表
F2 選擇編輯的文本
ctrl+shift+Space 選擇目前行
ctrl+a 選擇所有行
ctrl+shift+a 取消所有選擇
ctrl+n或ctrl+i 插入行
ctrl+d 删除行
浏覽器視窗快捷鍵表
*(小鍵盤) 展開活動浏覽器中的所有節點
+(小鍵盤) 展開活動浏覽器中的子節點
-(小鍵盤) 合攏活動浏覽器中的所有節點
F2 重命名
ctrl+shift+f 在圖中查找選擇的對象
Tools->Display Preferences->Content->Table->Advanced...->Columns->select
選中Code後,将它上移到第一位
這樣可以将code、name、type三項顯示在ER圖中,然後運作腳本,将注釋comment的内容替換到code或name中,即可。
執行如下腳本:
vbs檔案内容:
本文轉自鄒瓊俊部落格園部落格,原文連結:http://www.cnblogs.com/jiekzou/p/5721522.html,如需轉載請自行聯系原作者