Formatar SQL no SQL Server Management Studio

250

No Visual Studio e outros IDEs, você pode formatar automaticamente seu código facilmente com um atalho de teclado, através do menu ou automaticamente enquanto digita.

Eu queria saber se ainda existe uma maneira de habilitar esse recurso padrão no SQL Server Management Studio?

Estou trabalhando com alguns procs armazenados grandes e ish que são uma bagunça confusa de SQL mal formatado e seria bom se eu pudesse apenas "Selecionar tudo -> Formatar SQL"

lomaxx
fonte
1
SQLinForm fornece um recurso Hotkey
Guido
1
agora ele tem um formatador on-line gratuito: sqlinform.com/sql_formatter_online.html
Guido
Online você pode usar devtoolsonline20190908040816.azurewebsites.net/DevTools/...
GomuGomuNoRocket
Atualizado Q para estar no tópico
Andrew

Respostas:

270

Resposta tardia, mas espero que valha a pena: O formatador T-SQL do pobre é um formatador T-SQL de código aberto (gratuito) com suporte completo a lote / script T-SQL (qualquer DDL, qualquer DML), plug-in SSMS, volume de linha de comando formatador e outras opções.

Está disponível para uso imediato / on-line em http://poorsql.com e acabou de se formar na "versão 1.0" (estava na versão beta por alguns meses), tendo acabado de adquirir suporte para MERGEdeclarações, OUTPUTcláusulas e outras coisas delicadas. .

O suplemento SSMS permite definir sua própria tecla de atalho (o padrão é Ctrl- K, Ctrl- F, para corresponder ao Visual Studio) e formata o script inteiro ou apenas o código que você selecionou / destacou, se houver. A formatação de saída é personalizável.

No SSMS 2008, ele combina muito bem com o senso intelectual embutido, fornecendo mais ou menos a mesma funcionalidade básica do SQL Prompt do Red Gate (o SQL Prompt, é claro, tem coisas extras, como trechos, scripts rápidos de objetos, etc).

Os pedidos de feedback / recursos são bem-vindos, por favor, dê uma olhada se tiver a chance!

Divulgação: Isso provavelmente já é óbvio, mas eu escrevi esta biblioteca / ferramenta / site, então essa resposta também é uma autopromoção desavergonhada :)

Tao
fonte
2
No SQL Server 2012, o atalho Ctrl + K, Ctrl + F padrão não funciona, pois já está vinculado à Seleção de Formato . Funcionou depois de mudar de DataWarehouse Designer::Ctrl+k, Ctrl+fpara Global::Ctrl+k, Ctrl+j.
Marco Lackovic
5
consulte as dicas para instalações do SSMS 2014 stackoverflow.com/questions/23303026/… #
Alexander Sigachov
2
Ótima ferramenta, mas não é compatível com 2016 RTM
dmeglio
1
@ dman2306 - instalador compatível com 2016 (e 17) agora disponível.
Tao
2
@ Jordânia: no Windows 10, o .Net Framework 3.5 SP1 (incluindo o .Net 2.0) é um recurso opcional do Windows, que pode ser ativado na tela / funcionalidade "Ativar ou desativar recursos do Windows". Chama-se ".NET Framework 3.5 (inclui .NET 2.0 e 3.0)" e está no topo da lista de recursos opcionais - isso não funciona para você? (sim, desculpe, exigindo Net 2.0 neste dia e idade é provavelmente não razoável ... Criado Issue github.com/TaoK/PoorMansTSqlFormatter/issues/199 para rastrear)
Tao
137

Há um truque especial que descobri por acidente.

  1. Selecione a consulta que você deseja formatar.
  2. Ctrl+ Shift+ Q(Isso abrirá sua consulta no designer de consultas)
  3. Então é só ir OK Voila! O designer de consultas formatará sua consulta para você. Advertência é que você só pode fazer isso por declarações e não por código processual, mas é melhor que nada.
Justin
fonte
9
Boa dica. Infelizmente, enquanto esse método funciona, ele faz um trabalho bastante ruim. Mas pelo menos há algo embutido.
31412 John Homer
formatado, mas não da maneira esperada. Enfim, algo é melhor que nada :) Obrigado pela dica.
Jaini Naveen
2
Bem, até onde eu sei, embora ele realmente não faça o melhor trabalho, ele faz algo e está pronto para uso, e você não precisa pagar por isso. Mas apenas uma pessoa pensou em considerar útil. Im espantado realmente, eu pensei que tinha um presente atrelada ;-)
Justin
1
Descobri que, da mesma forma, as consultas são formatadas quando coladas em uma nova Visualização. Mas isso é muito mais limpo ... +1.
Feckmore
16
isso funcionará apenas se o conteúdo da consulta puder representar graficamente.
Kbvishnu