這是SQL Prompt5的工具欄按鈕 Refresh Suggestions 刷新提示(數據庫更改表結構后,需要刷新一下) Format SQL 格式化代碼(Pro版本才能啟用,可定制,所有前邊帶紅花的,都是Pro版可用,以下不再特意說明),格式化亂糟糟的SQL語句,方便查看 Uppercase Keywords SQL關鍵詞全部轉換為大寫(自定義變量不變) Qualify Object Names 限定對象名稱,比如原來是Selectcln from A,通過此功能,會變成Select A.cln from A,即將列進行完全限定 Expand Wildcards 展開通配符,將Select *fromtable 的*展開為具體的列 Find Invalid Object 查詢無效對象 Find Unused Variables and Parameters 在當前腳本里查找未使用到的參數或者變量,能夠減少參數或者變量冗余 Summarize Script 這個類似代碼縮放的功能, 能夠層次清晰的顯示出當前腳本的嵌套關系,你再也不用怕別人一大坨的嵌套的IF-ELSE,WHILE啥的了 Script Object as ALTER 選中的對象,生成ALTER腳本(只適用於視圖,存儲過程,觸發器,函數),會新打開一個查詢器窗口,並生成該對象的ALTER腳本 Smart Rename 重命名,如果你用過Eclipse或者Myeclipse,而且用過Alt+Shift+R,那么你會跟深刻的理解這個功能,在SQLServer Management Studio左側資源列表里選中對象(表,視圖,以及表或視圖的列,存儲過程,函數,以及其參數),會自動更新其他依賴此對象的依賴關系 Encapsulating SQL as a new stored procedure把選中的SQL腳本封裝成一個新的存儲過程 Split Table 分割表,將大表或者什么原因想要把兩個表拆分的,用這個功能還行 Options 選項(設置,SQLPrompt的精髓所在) Disable Code Suggesttions 禁用提示,如果你覺得提示很煩,那么,就關了它吧 Snippet Manager 這個是SQLprompt我特別喜歡的一個功能,代碼片段,稍候細講 Serial Number 輸入注冊碼 Provide Feedback 反饋建議,意見 Help 這個,額,不用解釋了吧 ExperimentalFeatures 實驗室功能,恩,還可以吧 Data Explore 數據資源管理器 1、 Refresh Suggestions 刷新提示(數據庫更改表結構后,需要刷新一下),如果勾選了實驗性功能里的 則每次修改表結構后會自動更新,但是如果數據庫太大,或者機身內存不夠,建議不要勾選,就跟eclipse很多人把自動提示取消,每次用到后選擇alt+/一個道理 快捷鍵:Ctrl+Shift+D 2、 Format SQL a) 設置的格式選項 b) 要設置格式選項,在的SQL提示菜單,選擇“Options“。在SQL提示選項“對話框中,格式化選項都是可用的格式組: c) d) 單擊頁包含格式選項要設置的類型。 e) 講到Options時再細說 快捷鍵:Ctrl+K,Ctrl+Y 3、 Uppercase Keywords 當前查詢器內的腳本,如果選中部分腳本語句,則值將此部分SQL關鍵字轉化為大寫,否則,當前查詢器腳本的所有關鍵字都將大寫(自定義變量不變) 快捷鍵:Ctrl+B,Ctrl+U 4、 Qualify Object Names 將選中部分的變量轉換為全限定名,即 Owner.object 或者 Table.Column 快捷鍵是:Ctrl+B,Ctrl+Q 5、 Expanding wildcards 讓他們列出引用的表中存在的所有列 快捷鍵:Ctrl+B,Ctrl+W 6、 Find Invoid Objects a) 查詢庫里所有無效的對象(無法編譯,或者已經編譯完成,但是無法執行) b) 查詢出結果后,可以進行Alter(可以多選) c) 可以復制無效對象列表 d) 我想說的是,如果數據庫很大,或者機器性能不行,建議不要使用該功能,特別容易卡死 7、 Find Unused Variables and Parameters 在當前腳本里查找未使用到的參數或者變量,能夠減少參數或者變量冗余 沒有使用的變量或者參數,用下划線進行標識 快捷鍵:Ctrl+B,Ctrl+F 8、 Summarize Script 這個類似代碼縮放的功能, 能夠層次清晰的顯示出當前腳本的嵌套關系,你再也不用怕別人一大坨的嵌套的IF-ELSE,WHILE啥的了 快捷鍵:Ctrl+B,Ctrl+S 9、 Script Object as ALTER 選中的對象,生成ALTER腳本(只適用於視圖,存儲過程,觸發器,函數),會新打開一個查詢器窗口,並生成該對象的ALTER腳本 快捷鍵:F12 10、Smart Rename 重命名對象,並同時修改依賴此對象的引用,只能在對象資源管理器視圖,選中要修改的對象,選擇Smart Rename(支持修改,表,視圖,以及表或視圖的列,存儲過程,函數,以及其參數) 11、EncapsulatingSQL as a new stored procedure 將選中的代碼封裝成一個存儲過程,很簡單,就不貼圖了 12、Splitting atable 分割表:就是將一個大的表,查分成幾個小表,同過主外鍵關聯進行查詢,具體的沒研究,感興趣的可以自己看看 13、Options 選項 關於sqlPrompt的設置,在博客園看到一篇不錯的文章,就懶得自己整理了,感興趣的自己看看吧 http://www.cnblogs.com/lyhabc/archive/2013/05/02/3055583.html 為了方便上網不方便的朋友,我已經把文章復制下來,貼到另外一個word里了,不過不可避免的錯版了,湊合看吧 14、SnippetManage 最后講一下Snippet Manage—代碼片段 類似Eclipse的快捷鍵,比如,Eclipse里的快捷鍵sysout,生成的代碼就是System.out.println(); 這里有一些自帶的,比如ssf,生成的代碼就是SELECT * FROM ,如果輸入表明后把光標放在*處,再按一下tab鍵就會把這個表的列展開,比如A表有C1,C2字段, SELECT * FROM A, 在*處按tab,就會變成 SELECT C1, C2 FROM A 快捷鍵Scf生成的是SELCT COUNT(*) FROM 快捷鍵ct 生成的是 CREATE TABLE $CURSOR$ ( -- column_name data_type,... ) 期中在代碼片段里帶有$CURSOR$生成代碼后,光標會跳到$CURSOR$處 類似的占位符有$DATE$ , $TIME$ , $USER$ , $MACHINE$ 分別會生成,當前日期2013-09-26星期四($DATE$),當前時間21:51($TIME$),當前用戶AnJia ($USER$),當前機器的計算機名ANJIA-PC($MACHINE$) 比如公司為了降低學習成本,一般對於一些存儲過程有硬性要求,這樣寫出來的存儲過程,視圖,等SQL塊,比較規范,便於新人掌握,理解,所以對於一些,套式的東西,完全可以自定義成快捷鍵,每次直接生成就可以,比如我自己定義的cpa,生成的代碼如下 --************************************************************************** --版本號Ver1.0 軟件工程事業部\物流倉儲系統模塊\ --編寫目的: --編寫人: 趙安家 --編寫日期: 2013-09-26星期四 21:57 --修改目的: --最后修改人: --最后修改日期: --************************************************************************** CREATE PROCEDURE[dbo].[] @oper_code VARCHAR(12), -- 操作編碼 @key_code VARCHAR(12), -- 入庫通知單主鍵 @Check_Oper VARCHAR(20), -- 審核人 @Check_Des VARCHAR(5000), --傳入的字符串 @Check_Msg VARCHAR(500)OUTPUT --返回信息 AS BEGIN --公共變量 DECLARE @int_count INT; -- DECLARE @int_i INT; -- SET @key_code= REPLACE(@key_code,'''', ''); --獲取主表主鍵 SET @Check_Des= REPLACE(@Check_Des,'''', ''); --獲取字符串 --開啟事務 BEGIN TRANTrans; SAVE TRANTrana; --生成主鍵 --EXEC dbo.BarCode_GetSheetNoProc'081033', '', @str_SOCode OUTPUT,@ErrorMsg = @HintMsg1 OUTPUT; --生成單據號 --EXEC dbo.CreateNewBusinessDocNo'081002', @str_SBusinessDocNo OUT; --截取字符串 --SELECT a FROMdbo.split(@Check_Des,',') WHERE i=1 -- 錯誤處理 IF @@error<> 0 BEGIN ROLLBACK TRAN Trana; COMMIT TRAN Trans END ELSE BEGIN COMMIT TRAN Trans; END END --------------------------------------------------------------------------------------------------------------- /* 時調用此存儲過程 * 存儲過程名: * 第一個參數指操作編碼,目前為空 * 第二個參數指主鍵編碼,如'10001' * 第三個參數指審核人工號,如管理員審核,其工號為'101' * 第四個參數指備注,傳參 * 第五個參數指返回信息,前台接收的提示信息 */ /* EXEC @oper_code = '', @key_code = '10010', @Check_Oper = '101', @Check_Des = '',@Check_Msg = '' 插入操作的時候,@Check_Des為空 EXEC '', '10010', '101', '', ''; EXEC '', '10010', '101', '', ''; */ 比如自定義ds,代碼如下 DECLARE @str_光標在此 VARCHAR(12);--注釋 比如自定義的while 代碼如下 WHILE (@int_i<=@int_count) BEGIN SELECT @int_i=@int_i+1,FROM 光標在此 WHERE id=@int_i; END