AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 45051
Accepted
user11512
user11512
Asked: 2013-06-22 07:15:31 +0800 CST2013-06-22 07:15:31 +0800 CST 2013-06-22 07:15:31 +0800 CST

Formatando T-SQL no SSMS 2012

  • 772

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?

sql-server ssms
  • 4 4 respostas
  • 78676 Views

4 respostas

  • Voted
  1. Best Answer
    Aaron Bertrand
    2013-06-22T09:32:49+08:002013-06-22T09:32:49+08:00

    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:

    • Embelezador SQL do Simple-Talk
    • SQL ruim (que Thomas sugeriu )

    E também existem suplementos para vários níveis de assistência de formatação no editor:

    • Prompt SQL do Red-Gate
    • Pacote de ferramentas SSMS
    • Refatoração do ApexSQL
    • SSMS Boost
    • dbForge SQL Complete (que Robert sugeriu )

    Agora, a razão pela qual você está recebendo a mensagem...

    A combinação de teclas (Ctrl+K, Ctrl+D) está vinculada ao comando (Formatar Documento) que não está disponível no momento.

    ...é 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:

    1. Vamos paraTools > Options > Environment > Keyboard

    2. Coloque o cursor na Press shortcut keys:caixa

    3. Aperte Ctrl+ K, Ctrl+D

    4. Altere a lista Shortcut currently used by:suspensa de DataWarehouse DesignerparaText Editor

      insira a descrição da imagem aqui

    5. 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 Formattingguia à 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:

    Aplica a formatação de recuo e espaço para o idioma especificado no painel Formatação do idioma na seção Editor de texto da caixa de diálogo Opções . Disponível apenas no editor de texto e apenas para alguns idiomas .

    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... > Formata 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.

    insira a descrição da imagem aqui

    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.

    • 43
  2. Thomas Stringer
    2013-06-22T07:26:13+08:002013-06-22T07:26:13+08:00

    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.

    • 12
  3. Robert Niestroj
    2013-06-22T11:47:16+08:002013-06-22T11:47:16+08:00

    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.

    • 6
  4. Latish
    2014-08-02T13:05:20+08:002014-08-02T13:05:20+08:00

    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.

    • 2

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve