De acordo com este documento da Microsoft:
http://msdn.microsoft.com/en-us/library/ms174205.aspx
Eu deveria ser capaz de usar ctrl + K e depois ctrl + D para formatar meus documentos SQL no SQL Server Management Studio 2012, mas quando uso essa combinação, recebo o erro:
A combinação de teclas (Ctrl+K, Ctrl+D) está vinculada ao comando (Formatar Documento) que não está disponível no momento.
Estou tentando fazer modificações em um documento SQL existente que não tem formatação, o que torna extremamente difícil de ler. Alguém sabe como disponibilizar o comando Format Document para que eu possa formatar esse código SQL para mim?
A combinação de teclado que você procura ( Ctrl+ K, Ctrl+ D) é para "formatação" - mas não na medida que você espera. Não é um embelezador, é usado apenas para inserir o espaçamento e as guias corretos como encontrado em
Tools > Options > Text Editor > Transact-SQL > General/Tabs
- portanto, se você destacar uma parte do texto e pressionar a combinação do teclado, ele deverá converter as guias em 4 espaços (se você selecionou inserir espaços), aplique o tipo de recuo que você especificou, etc.Esta opção NÃO se destina a tornar o código mais legível - esta não é uma funcionalidade que o Management Studio oferece atualmente nativamente. Embora existam várias opções de terceiros - algumas são externas ao Management Studio, como:
E também existem suplementos para vários níveis de assistência de formatação no editor:
Agora, a razão pela qual você está recebendo a mensagem...
...é porque o SSMS mapeou essa combinação de teclas para um contexto diferente. A maneira como você deve "consertar" isso - novamente, ainda não faria o que você deseja, mesmo que a "correção" funcione - é fazendo o seguinte:
Vamos para
Tools > Options > Environment > Keyboard
Coloque o cursor na
Press shortcut keys:
caixaAperte Ctrl+ K, Ctrl+D
Altere a lista
Shortcut currently used by:
suspensa deDataWarehouse Designer
paraText Editor
pressione OK
Agora, isso deve mapear a combinação de teclado para o editor de texto, mas o Management Studio a reverte após clicar em OK (você continuará recebendo a mensagem de erro. Então, acho que o problema é que a documentação acredita que essa funcionalidade existe, mas o Management O Studio sabe melhor e simplesmente não o oferece (e a Microsoft provavelmente descartará isso como um bug na documentação e o corrigirá, em vez de uma falha na ferramenta). Pode haver esperança no futuro, mas, por enquanto, este é um problema conhecido e amplamente ignorado . Você notará que a
Formatting
guia à qual a documentação se refere simplesmente não está presente (embora esteja lá para XML, onde a combinação de teclado funciona). A documentação provavelmente deve declarar:Outra maneira de ter uma ideia de que tipo de opções de formatação o SSMS oferece nativamente é acessar
Tools > Customize > Commands > Edit > Add Command... > Format
a lista de comandos possíveis lá. Nada que indique que há algum conhecimento do idioma real, portanto, não saberia onde inserir quebras de linha ou adicionar recuos adicionais ou ajudar com parênteses etc.Se você quiser que a formatação específica do idioma torne o código T-SQL existente mais legível, você não obterá muito do SSMS e precisará buscar outras opções.
Eu não acredito que isso seja possível no SSMS. Havia um item do Connect aberto para esse recurso.
O que eu pessoalmente gosto de usar para código SQL mal formatado é o aplicativo da web no Poor SQL . Ele faz um trabalho muito bom de formatar o código SQL de acordo com suas especificações. Até gera HTML se assim o desejar. Eu não uso o plug-in SSMS ou qualquer outro produto que eles anunciam, eu sempre entro no site para fazer a formatação rápida e depois copio/cola diretamente no SSMS.
Instale um complemento que faça isso. Eu uso a edição gratuita do SQL Complete: http://www.devart.com/dbforge/sql/sqlcomplete/ que oferece algumas funcionalidades básicas de formatação SQL. Ele se integra ao SSMS e usa Ctrl + K, D.
SqlSmash é uma ferramenta comercial que permite formatar seu SQL (e muito mais) no SSMS 2012 e 2014. O atalho de teclado padrão é (Ctrl + K, Ctrl + D).
Isenção de responsabilidade: eu sou o desenvolvedor por trás disso.