前言
好長時(shí)間沒有寫過博客了,人變懶了很多,應(yīng)該說本來也不怎么勤快。但今天為了這個(gè)工具,必須得勤快一下了,天下真的沒有免費(fèi)的午餐。
之前使用過sql server 2000的查詢設(shè)計(jì)器和Toad for Oracle 都有格式化Sql語句的功能,感覺很方便,尤其對于我這種有著輕微強(qiáng)迫癥的人來說。當(dāng)最近把SQL Server Management Studio(SSMS)升級到2008 R2版本時(shí),沒有格式化的功能,之前的2005和2008也都沒有,咱就不知道微軟是咋想的了。所以就想找一個(gè)在SSMS中能格式化代碼的插件,搜來搜去就搜到了很多人推薦的SQL Pretty Printer神器,然后過來下載測試了,使用結(jié)果挺滿意地,下面就說說SQL Pretty PrinterAdd-In for SSMS的使用吧。
內(nèi)容
1、首先下載安裝程序,下載地址在這里,下載完成之后直接安裝就可以了,沒有什么要說的。
2、安裝完成之后重新打開SSMS,就會看到如下圖:
3、Format Selected SQL
這個(gè)功能主要是格式化當(dāng)前窗口中選擇的SQL語句,只有先選擇要格式化的SQL語句才能使用該功能。
4、Fromat All SQL
這個(gè)功能主要是格式化當(dāng)前窗口中所有的SQL語句。
5、效果:
格式化之前
格式化之后
6、Rename Table 和 Rename Column
這兩個(gè)功能是3.2.0新增加的,主要用于在復(fù)雜的SQL語句(包括嵌套子查詢、連接、函數(shù)調(diào)用的參數(shù),存儲過程中的參數(shù)),重命名表名和列名。下面看一個(gè)示例大概就明白啥意思了,我的理解就是類似于使用正則表達(dá)式匹配,然后替換其中的表名和列名。
使用下面的SQL語句做測試:
SELECT person.firstname, Orders.NAMEFROM person LEFT JOIN Orders ON person.P_Id = Orders.P_IdORDER BY person.firstname
替換之后的SQL語句,表名沒有變,只有列名變化,這個(gè)功能倒是挺有用的,遇到要修改不同表的相同的列名情況下,挺適合的。
7、To C#(To VB.NET)
將SQL語句轉(zhuǎn)換成C#語言中的輸出語句。還是使用上面的SQL語句,在SSMS中選中要轉(zhuǎn)換的SQL語句,然后選擇To C#,將會看到如下轉(zhuǎn)換后的C#代碼,生成一個(gè)SQL語句的字符串,可以減少在代碼中寫拼SQL語句的麻煩:
StringBuilder varname1 = new StringBuilder();varname1.Append("SELECT Persons.firstName, /n");varname1.Append(" Orders.NAME /n");varname1.Append("FROM Persons /n");varname1.Append(" LEFT JOIN Orders /n");varname1.Append(" ON Persons.P_Id = Orders.P_Id /n");varname1.Append("ORDER BY Persons.firstName ");
8、C# To SQL (VB.NET To SQL)
將C#代碼翻譯成SQL語句,C#代碼好像只要滿足varname1.Append("SQL語句");就能轉(zhuǎn)換成對應(yīng)的SQL語句了,在他們網(wǎng)站上找半天沒有找到相關(guān)說明的文檔,測試的話已經(jīng)限制使用了,好苦逼啊
9、SQL Formatter Options
這個(gè)就是格式化的選項(xiàng)了,打開如下圖所示,具體的功能就不介紹了,我也沒有仔細(xì)看,用默認(rèn)設(shè)置應(yīng)該就夠用了。
此文純屬個(gè)人對這個(gè)軟件的一些理解,有啥不正確的地方,還請斧正!
參考
SQL格式化工具-SQL Pretty Printer
SQL REFACTOR: RENAME COLUMN AND TABLE
SQL Pretty Printer format SQL on the fly | Gudu Software
新聞熱點(diǎn)
疑難解答
圖片精選