前言
好长时间没有写过博客了,人变懒了很多,应该说本来也不怎么勤快。但今天为了这个工具,必须得勤快一下了,天下真的没有免费的午餐。
之前使用过sql server 2000的查询设计器和Toad for oracle 都有格式化Sql语句的功能,感觉很方便,尤其对于我这种有着轻微强迫症的人来说。当最近把SQL Server Management Studio(SSMS)升级到2008 R2版本时,没有格式化的功能,之前的2005和2008也都没有,咱就不知道微软是咋想的了。所以就想找一个在SSMS中能格式化代码的插件,搜来搜去就搜到了很多人推荐的SQL Pretty Printer神器,然后过来下载测试了,使用结果挺满意地,下面就说说SQL Pretty Printer Add-In for SSMS的使用吧。
内容
1、首先下载安装程序,下载地址在这里,下载完成之后直接安装就可以了,没有什么要说的。
2、安装完成之后重新打开SSMS,就会看到如下图:
3、Format Selected SQL
这个功能主要是格式化当前窗口中选择的SQL语句,只有先选择要格式化的SQL语句才能使用该功能。
4、Fromat All SQL
这个功能主要是格式化当前窗口中所有的SQL语句。
5、效果:
格式化之前
格式化之后
6、Rename Table 和 Rename Column
这两个功能是3.2.0新增加的,主要用于在复杂的SQL语句(包括嵌套子查询、连接、函数调用的参数,存储过程中的参数),重命名表名和列名。下面看一个示例大概就明白啥意思了,我的理解就是类似于使用正则表达式匹配,然后替换其中的表名和列名。
使用下面的SQL语句做测试:
SELECT person.firstname,
Orders.NAME
FROM person
LEFT JOIN Orders
ON person.P_Id = Orders.P_Id
ORDER BY person.firstname
替换之后的SQL语句,表名没有变,只有列名变化,这个功能倒是挺有用的,遇到要修改不同表的相同的列名情况下,挺适合的。
7、To C#(To VB.NET)
将SQL语句转换成C#语言中的输出语句。还是使用上面的SQL语句,在SSMS中选中要转换的SQL语句,然后选择To C#,将会看到如下转换后的C#代码,生成一个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语句");就能转换成对应的SQL语句了,在他们网站上找半天没有找到相关说明的文档,测试的话已经限制使用了,好苦逼啊
9、SQL Formatter Options
这个就是格式化的选项了,打开如下图所示,具体的功能就不介绍了,我也没有仔细看,用默认设置应该就够用了。
此文纯属个人对这个软件的一些理解,有啥不正确的地方,还请斧正!
参考
SQL格式化工具-SQL Pretty Printer
SQL REFACTOR: RENAME COLUMN AND TABLE
SQL Pretty Printer format SQL on the fly | Gudu Software