在SQL Server Management Studio中格式化SQL


249

在Visual Studio和其他IDE中,您可以通过键盘快捷键,菜单或键入时轻松地自动设置代码格式。

我想知道是否还有一种方法可以在SQL Server Management Studio中启用此标准功能?

我正在处理一些大型存储的proc,这些proc混乱的是格式较差的SQL,如果我可以直接选择“全选->格式化SQL”,那就太好了


1
SQLinForm提供了热键功能
Guido

1
它现在具有免费的在线格式化程序:sqlinform.com/sql_formatter_online.html
Guido


将Q更新为主题
Andrew

Answers:


269

答案较晚,但希望值得:穷人的T-SQL格式化程序是开源(免费)T-SQL格式化程序,具有完整的T-SQL批处理/脚本支持(任何DDL,任何DML),SSMS插件,命令行批量格式化程序和其他选项。

它可以从http://poorsql.com立即/在线使用,直到今天才升级到“ 1.0版”(几个月处于beta版),刚刚获得了对MERGE语句,OUTPUT子句和其他挑剔内容的支持。 。

SSMS加载项允许您设置自己的热键(默认为Ctrl- KCtrl- F,以匹配Visual Studio),并格式化整个脚本或仅格式化已选择/突出显示的代码(如果有)。输出格式是可定制的。

在SSMS 2008中,它与内置的智能感知很好地结合在一起,有效地提供了与Red Gate的SQL Prompt差不多的基本功能(SQL Prompt当然还有一些额外的功能,例如代码片段,快速对象脚本,等等)。

反馈/功能请求非常受欢迎,如果有机会,请稍等一下!

披露:这可能已经很明显了,但是我写了这个库/工具/站点,所以这个答案也是无耻的自我推广:)


2
在SQL Server 2012上,默认的Ctrl + K,Ctrl + F快捷键无效,因为它说它已经绑定到Format Selection了。从更改为后,它起作用DataWarehouse Designer::Ctrl+k, Ctrl+fGlobal::Ctrl+k, Ctrl+j
Marco Lackovic 2015年


2
很棒的工具,但与2016 RTM不兼容
dmeglio

1
@ dman2306-与2016(和17)兼容的安装程序现已可用。

2
@Jordan:在Windows 10中,.Net Framework 3.5 SP1(包括.Net 2.0)是Windows的可选功能,可以在“打开或关闭Windows功能”屏幕/功能中启用。它被称为“ .NET Framework 3.5(包括.NET 2.0和3.0)”,它位于可选功能列表的顶部-这对您不起作用吗?(是的,很抱歉,在这一时代不要求使用.Net 2.0可能是不合理的。。。已创建发行版github.com/TaoK/PoorMansTSqlFormatter/issues/199进行跟踪)
Tao Tao

137

我偶然发现了一个特殊的把戏。

  1. 选择您要格式化的查询。
  2. Ctrl+ Shift+ Q(这将在查询设计器中打开您的查询)
  3. 然后行吧,瞧!查询设计器将为您格式化查询。请注意,您只能对语句而不是过程代码执行此操作,但总比没有好。

8
不错的提示。可悲的是,虽然这种方法确实有效,但是恕我直言,它的工作相当糟糕。但是至少有内置的东西。
约翰·荷马

它格式化但不是预期的方式。无论如何,总比没有好:).....谢谢你的提示。
Jaini Naveen

2
好吧,据我所知,尽管它并不能真正做到最好,但它确实可以完成某些工作,而且它是开箱即用的,您不必为此付费。但是只有一个人认为将其标记为有用。我真的很惊讶,我以为我有一个钉住它;-)
贾斯汀

1
我发现,类似地,查询在粘贴到新视图中时也会格式化。但是,这要干净得多... +1。
Feckmore 2014年

16
仅当查询的内容能够以图形方式表示时,此方法才有效。
kbvishnu 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.