選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
1 分鐘閱讀時間 (291 個字)

[Tool]SQL Beautifier

[Tool]SQL Beautifier


 
今天要介紹的這套SQL Pretty Printer, 是一套SQL格式化(美化)工具。
這套工具本身有提供不同版本(*註1),可針對自己需求下載對應版本,這次針對SQL Pretty Printer Add-In for SSMS (擴充SQL Server Management Studio)的版本來做介紹。



首先為什麼會想特別介紹這個小工具呢?

起因是我待過的專案是幾乎都是使用StringBuilder串接SQL(*註2)
sbSql.AppendLine("SELECT ");
sbSql.AppendLine(" NAME ");
sbSql.AppendLine("FROM MAIN_DATA ");
sbSql.AppendLine("WHERE ID = 1 ");
有時候想要直接複製SQL做查詢很不方便(會連C#語法一起複製到),而這套工具特別的地方在於可以將C#轉為SQL,讓我們輕鬆得到所需的SQL語法。

接下來就介紹怎麼使用SQL Pretty Printer吧!

1.在官網下載SQL Pretty Printer,安裝完畢後重新開啟SSMS後,可以再功能選單找到SQL Beautifier:



2.功能介紹

本次想分享的部分是針對C# To SQL 、To C#的功能。

2.1 C# To SQL

貼上並選取所需轉換的C#程式碼,透過C# To SQL 可以將C#語法移除。下圖是使用前後範例:



2.2 To C#

可以將SQL加上C#語法,除此之外也可以透過SQL Formatter Options/OutPutfmt自訂不同語言要轉換的格式。

(另外Formatter Options中還有其他可以供使用者調整的部分,如果有興趣也可以試試看。)



下列是針對設定的介紹,大家可以依據自己所需來設定。

Varname for each output type:設定變數名稱,以我目前專案為例都習慣命名sbSql。

Type:可以選擇你要針對哪個語言設定的格式,這邊是需要將SQL 轉出 C# StringBuilder,所以選擇了Csharpsbd。

First Line String:第一行之前所要顯示的字串,預設是String %varname% = "";%linebreak%  。

First Char Of Each Line :每行SQL的前綴字,預設為%varname%.Append("

Last Char Of Each Line:每行SQL的結尾字,預設為 \n"); 

Last Char Of Last Line:最後一行SQL結尾字,預設為 ");

下列是依據上方圖中設定的格式,To C# 出來的前後比對:



設定完後就可以輕鬆的將轉出來的語法直接貼上啦!

當初我會接觸到這套小工具是同事介紹給我使用的,現在也將這套小工具介紹給大家!希望對各位在工作上能有所幫助囉!




*註1:SQL Pretty Printer另外還有 For Desktop、For VS等版本供下載。

*註2:本例利用大量AppendLine對於效能來說並不是很好,其實透過sbSql.AppendLine(@"....");不但可以達到讓字串內容直接換行的效果,且較無效能疑慮,大家不妨嘗試看看唷!

參考資料:SQL Pretty Printer官網
線上客服 + Chatbot = 智慧客服
解析 SQL Server Deadlocks

相關文章

 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/04, 週六

Captcha 圖像