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格式的代码?
解决方法
此选项不是为了使代码更具可读性 – 这不是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>自定义>命令>编辑>添加命令…>格式化并查看可能的命令列表.没有任何东西表明对实际语言有任何了解,因此它不知道在哪里插入换行符或添加额外的缩进或辅助括号等.