翻譯|使用教程|編輯:莫成敏|2019-09-27 11:59:57.307|閱讀 536 次
概述:本教程演示了SQL Prompt如何幫助“小規模” SQL重構任務,該任務的范圍通常僅限于您在本地工作的單批代碼或代碼對象。這些任務直接在SSMS查詢窗口中執行,并且可以幫助您以各種方式重構代碼,這些方式在測試存儲過程和對存儲過程進行故障排除時非常有用。本文主要是教程上半部分內容。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
SQL Prompt是一款實用的SQL語法提示工具。SQL Prompt根據數據庫的對象名稱、語法和代碼片段自動進行檢索,為用戶提供合適的代碼選擇。自動腳本設置使代碼簡單易讀——當開發者不大熟悉腳本時尤其有用。SQL Prompt安裝即可使用,能大幅提高編碼效率。
Louis Davidson揭示了一些有用的提示功能,可在開發過程中重構單個代碼塊或模塊,這將提高代碼質量,減少繁瑣的工作,使測試更簡單,有時甚至是全部三種功能。
SQL Prompt是我一直使用的工具,用于代碼完成和代碼格式化任務,以至于在沒有它的情況下編寫查詢感覺非常錯誤。用JOIN編寫SQL語句,它會自動建議ON條件。在ORDER BY或者GROUP BY子句中,它有助于選擇分組列。審查一些丑陋的代碼(也許是自己寫的)用您喜歡的樣式很好地格式化它。
但是,SQL Prompt具有許多其他功能,這些功能我很少用,但在需要的時候非常有用。本教程演示了SQL Prompt如何幫助“小規模” SQL重構任務,該任務的范圍通常僅限于您在本地工作的單批代碼或代碼對象。這些任務直接在SSMS查詢窗口中執行,并且可以幫助您以各種方式重構代碼,這些方式在測試存儲過程和對存儲過程進行故障排除時非常有用。這篇文章主要是教程的上半部分內容~
本文中的所有示例均從WideWorldImporters示例數據庫的新恢復的副本開始。
重命名別名/變量
提示:將光標置于別名或變量上,從上下文菜單中選擇“重命名別名/變量”,或按F2鍵,然后輸入新名稱。當前批次或對象中的所有匹配項均已更改。
有時,程序員為變量或別名選擇了較差的名稱。我已經看到@I,如果仔細檢查,可以更有效地將其稱為@EnableSystemFunctionsSetting。我們一次又一次地感到內疚,當您需要快速進行編碼時,標準往往會失效,而我們常常忘記暫停,并仔細考慮可能使用的最佳名稱。
下列代碼顯示了一個應用程序。Cities$List存儲過程后面是第二個批處理(只是為了演示這種重命名的工作方式)。假設您想將@CityName重命名為@CityNameLike,使用戶清楚的知道他們可以傳遞LIKE表達式。
CREATE OR ALTER PROCEDURE Application.Cities$List @CityName nvarchar(50) = '%', @CityNameUpperCaseFlag bit = 0 AS DECLARE @CityNameValue nvarchar(50); SELECT Cities.CityID, CASE WHEN @CityNameUpperCaseFlag = 1 THEN UPPER(Cities.CityName) ELSE Cities.CityName END, Cities.Location FROM Application.Cities WHERE Cities.CityName LIKE @CityName; GO DECLARE @CityName int; SELECT @CityName GO
清單1
當然,一種久經考驗并幾乎是正確的方法是查找并替換(Ctrl + H)。但是,如果您不注意,可能會導致一些參數意外地重命名為@CityNameLikeUpperCaseFlag,并且在當前對象的預期范圍之外重命名參數和變量。
圖1
使用SQL Prompt的重命名別名/變量重構,您可以更精確地執行此任務。突出顯示@CityName的出現項,或將光標放在其上,它僅突出顯示當前范圍內@CityName的另一確切出現項。與查找和替換不同,它不會突出顯示任何不完全匹配的內容,并且不會觸及第二批。
圖2
現在,右鍵單擊選擇重命名別名/變量,或按F2,然后在矩形框內看到變量時,鍵入替換名稱CityNameLike,然后按Enter以“提交”更改名稱。如果輸入有誤,則可以使用單個“撤消”(Ctrl-Z)修復損壞。
接下來,您可能需要將Cities表的別名更改為較短的名稱,例如c。如果單擊的任何實例Cities,則SQL Prompt將突出顯示其他實例,但由于Cities不是別名,因此SQL Prompt的Rename Alias / Variable方法將不起作用。不過,這很容易解決。只需建立Cities一個別名,然后突出顯示它并點擊F2即可。
圖3
替換Cities為c,單擊Enter,新代碼將如下所示。
CREATE OR ALTER PROCEDURE Application.Cities$List @CityNameLike nvarchar(50) = '%', @CityNameUpperCaseFlag bit = 0 AS DECLARE @CityNameValue nvarchar(50); SELECT c.CityID, CASE WHEN @CityNameUpperCaseFlag = 1 THEN UPPER(c.CityName) ELSE c.CityName END, c.Location FROM Application.Cities AS c WHERE c.CityName LIKE @CityNameLike; GO
查找未使用的變量和參數
提示:在查詢窗口中,可以選擇突出顯示代碼塊,從SQL Prompt菜單中選擇“查找未使用的變量和參數”,或按(Ctrl B,Ctrl F),然后Prompt將在所有未使用的變量或參數下劃線。
在圖3中,您可以在下面看到一條綠色的波浪線@CityNameValue(和過程名稱,稍后再介紹)。這是SQL Prompt代碼分析功能,可提醒我們注意已聲明但從未使用過的變量。
圖4
即使您關閉了此功能(在使用非常大的腳本時,有時也會這樣做),您仍然可以使用“查找未使用的變量和參數”(Ctrl B + Ctrl F),并且在@CityNameValue變量下方會看到相同的綠色波浪線,和相同的消息。讓我們簡單地刪除該變量聲明,然后繼續進行此代碼的更多改進。
本教程內容尚未完結,后面將更新下半部分內容,包括“使用代碼片段進行重構”和“內聯執行:重構以進行測試”,感興趣的朋友可以下載SQL Prompt試一下哦~
相關內容推薦:
想要購買SQL Prompt正版授權,或了解更多產品信息請點擊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn