sql-server – 在SSMS 2012中格式化T-SQL

前端之家收集整理的这篇文章主要介绍了sql-server – 在SSMS 2012中格式化T-SQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
根据这篇微软文档:

http://msdn.microsoft.com/en-us/library/ms174205.aspx

我应该能够使用ctrl K然后ctrl D在sql Server Management Studio 2012中格式化我的sql文档,但是当我使用该组合时,我得到错误

The key combination (Ctrl+K,Ctrl+D) is bound to command (Format
Document) which is not currently available.

我试图修改现有的没有格式化的sql文档,这使得它非常难以阅读.有谁知道如何使格式文档命令可用所以我可以为我编写sql格式的代码

解决方法

您所使用的键盘组合(Ctrl K,Ctrl D)用于“格式化” – 但不是您想要的程度.它不是一个美化剂,它只是用于插入正确的间距和标签,如工具>中所示.选项>文本编辑器> Transact-sql>常规/标签 – 因此,如果您突出显示部分文本并点击键盘组合,则应将标签转换为4个空格(如果您选择了插入空格),请应用您指定的缩进类型等.

此选项不是为了使代码更具可读性 – 这不是Management Studio当前提供的功能.虽然有几个第三方选项 – 有些是Management Studio的外部选项,例如:

> Simple-Talk’s SQL Prettifier – 我实际上用于在sqlblog.com为基于社区服务器的博客格式化/美化sql代码,这不是非常CSS或插件友好
> Poor SQL(其中Thomas suggested)

在编辑器中还有各种级别的格式化辅助加载项:

> Red-Gate’s SQL Prompt
> SSMS Tools Pack
> ApexSQL’s Refactor
> SSMSBoost
> dbForge SQL Complete(其中Robert suggested)

现在,你收到消息的原因……

The key combination (Ctrl+K,Ctrl+D) is bound to command (Format Document) which is not currently available.

…是因为SSMS已将该组合键映射到不同的上下文.你应该能够“修复”它的方式 – 再次,它仍然不会做你想做的事,即使“修复”工作 – 通过执行以下操作:

>转到工具>选项>环境>键盘
>将光标放入按快捷键:框
>按Ctrl K,按Ctrl D.
>将当前使用的快捷方式更改为:从DataWarehouse Designer下拉到文本编辑器

>按OK

现在,这应该将键盘组合映射到文本编辑器,但是在点击OK后,Management Studio会将其恢复(您将继续收到错误消息.所以,我认为问题是文档认为此功能存在,但管理Studio知道更好而且根本不提供它(并且微软可能会将其作为文档中的错误写出来并更正它,而不是工具中的缺点).未来可能会有希望,但是现在,this is a known and largely ignored issue.你会注意到the documentation refers to的格式化选项卡根本不存在(虽然它适用于XML,键盘组合可以工作).文档应该说明:

Applies the indenting and space formatting for the language specified on the @H_502_49@Formatting pane of the language in the @H_502_49@Text Editor section of the @H_502_49@Options dialog. Available only in the text editor @H_502_49@and only for certain languages.

另一种了解SSMS本机提供的格式化选项的方法是转到Tools>自定义>命令>编辑>添加命令…>格式化并查看可能的命令列表.没有任何东西表明对实际语言有任何了解,因此它不知道在哪里插入换行符或添加额外的缩进或辅助括号等.

如果您希望特定于语言的格式化使现有的T-sql代码更具可读性,那么您将无法从SSMS获得太多,并且您需要寻求其他选项.

猜你在找的MsSQL相关文章