309

In Visual Studio & other IDEs, you can easily auto format your code with a keyboard shortcut, through the menu, or automatically as you type.

I was wondering if there is yet a way to enable this standard feature in SQL Server Management Studio?

I'm working with some large-ish stored procs that are a mangled mess of poorly formatted SQL and it'd be nice if I could just go "Select All -> Format SQL"

4

3 回答 3

306

迟到的答案,但希望值得:The Poor Man's T-SQL Formatter是一个开源(免费)T-SQL 格式化程序,具有完整的 T-SQL 批处理/脚本支持(任何 DDL、任何 DML)、SSMS 插件、命令行批量格式化程序和其他选项。

它可以在http://poorsql.com上立即/在线使用,并且刚刚升级到“1.0 版”(它是几个月的测试版),刚刚获得对MERGE语句、OUTPUT子句和其他挑剔的东西的支持.

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

在 SSMS 2008 中,它与内置的智能感知很好地结合在一起,有效地提供了与 Red Gate 的 SQL Prompt 或多或少相同的基本功能(当然,SQL Prompt 确实有额外的东西,比如片段、快速对象脚本、 ETC)。

非常欢迎反馈/功能请求,如果有机会,请试一试!

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

于 2011-08-25T21:36:11.033 回答
176

我偶然发现了一个特殊的技巧。

  1. 选择要格式化的查询。
  2. Ctrl+ Shift+ Q(这将在查询设计器中打开您的查询)
  3. 然后就去OK瞧!查询设计器将为您格式化您的查询。需要注意的是,您只能对语句而不是过程代码执行此操作,但总比没有好。
于 2012-05-16T23:48:41.360 回答
14

Azure Data Studio - 免费且来自 Microsoft - 提供自动格式化(编辑时 ctrl + shift + p -> 格式化文档)。有关 Azure Data Studio 的更多信息,请点击此处

虽然这不是 SSMS,但它非常适合编写查询、免费和 Microsoft 的官方产品。它甚至是跨平台的。小故事:只需切换到 Azure Data Studio 即可编写查询!

更新:实际上 Azure Data Studio 在某种程度上是微软推荐的用于编写查询的工具(来源

如果您: [..] 主要是在编辑或执行查询,请使用 Azure Data Studio。

于 2020-12-26T14:05:22.157 回答