Atalhos / Snippets para selecionar um bloco de código


8

Estou usando o SQL Server Management Studio 2016 no Windows 10. Estou cansado de usar as teclas shift / ctrl + cima / baixo / direita / esquerda para selecionar o código que quero executar. Eu estou querendo saber se existem atalhos / trechos para selecionar um bloco de código que se separou de outro código por linhas em branco?

Aqui está um exemplo de código:

select *
from tab1

select *
from tab2

select *
from tab3

Digamos, meu cursor está dentro do bloco do meio e qual é a melhor maneira de selecionar o bloco do meio?


11
DataGrip do JetBrains (Ctrl + Enter). Barato também. UI escura também.
Nelz 17/03

Respostas:


4

Não sou afiliado ao Red-Gate, mas gostaria de ressaltar que, se você pressionar Shift-F5, quando possuir uma cópia nova do prompt do SQL, a consulta em que o cursor estiver, será marcada em verde e executada .

Isso realmente me salvou muitas teclas.


Muito obrigado pela sua resposta! Eu tentei sql prompty e foi incrível! Vou pensar em comprá-lo após o julgamento!
Jason

11
Observe que ele realmente não seleciona o código, pois você não pode usar esse método para copiar o bloco de código que foi executado.
Thomas Rushton

4

Usando a Autohotkey, consegui desenvolver uma solução para selecionar um bloco de código e aqui está o script que tenho:

!b::

send ^f

sendraw ^\r$

send {F3}

send +{F3}

send {Esc}

send {down}

send ^{=}

return

Especificamente, pressionar Alt + B invocará esse script e o script selecionará o bloco de código em que o cursor está. Observe que o bloco de código deve ser separado de outros blocos por linhas em branco e o bloco de código não pode ter linhas em branco em si.

As principais etapas do script about são

  • usando a expressão regular "^ \ r $" para localizar as linhas em branco acima e abaixo do cursor

  • movendo o cursor para essas duas linhas em branco, uma a uma

  • usando ctrl + = para selecionar o bloco de código entre essas duas linhas em branco.

Observe que! / ^ / + São alt / ctrl / shift separadamente.


Eu não sabia que você poderia fazer isso com o AutoHotKey. Muito menos abrangente do que o SQL Prompt. Obrigado por postar.
Henrik Staun Poulsen /

3

Uma maneira de selecionar rapidamente blocos de código no SSMS é minimizar o código usando o -botão ao lado da palavra-chave principal em uma instrução SQL (por exemplo, SELECT, UPDATE, DELETE, WITH, etc.), realce a linha e pressione F5para executá-la.

insira a descrição da imagem aqui

Dependendo da sua versão do SSMS (versões mais recentes, obviamente, sendo preferidas nesse caso), também existem alguns atalhos de teclado que você pode usar para recolher / expandir uma seção. O link de atalho do teclado fornecido pela resposta anterior de Simon Hellings alude às teclas de atalho já definidas, mas não posso confirmar se elas realmente funcionam. No entanto, você pode definir algumas teclas de atalho personalizadas para fazer isso da seguinte maneira:

  1. As funções para as quais definimos as teclas de atalho são encontradas em Edit-> OutliningOpções de menu: insira a descrição da imagem aqui

  2. Para definir as teclas de atalho, navegue para Tools-> Options...-> Environment-> Keyboard-> Keyboard. Digite Outlinnas Mostrar comandos contendo: caixa. Em seguida, atribuir uma nova combinação de teclas de atalho para Edit.ToggleAllOutlininge Edit.ToggleOutliningExpansione pressione Assign: insira a descrição da imagem aqui

  3. Agora, verifique os atalhos após pressionar Ok e suas teclas de atalho devem funcionar conforme o esperado. Como você pode ver, designei o meu para CTRL+ALT+Left Arrowe CTRL+ALT+Right Arrow, mas você pode usar o que quiser: insira a descrição da imagem aqui

Finalmente, se isso não funcionar, pode ser necessário mudar para um cliente SQL diferente. Parece que a funcionalidade desejada é semelhante à execução de um bloco Oracle PL / SQL via CTRL + ENTEROracle SQL Developer. Você pode usar o Oracle SQL Developer para conectar-se ao SQL Server usando drivers JDBC de banco de dados de terceiros ( ref ), mas não o recomendo.


Sim, isso por si só é motivo suficiente para instalar o Toad e usar o F9. Toad tem seu próprio conjunto de peculiaridades.
crokusek

Obrigado pela sua resposta! Como dobrar o nó da árvore sem usar o mouse?
Jason

@ Jason - Eu atualizei minha resposta com os atalhos do teclado. Você precisará de uma versão mais recente do SSMS, pois essa funcionalidade não estava disponível em todas as versões, conforme indicado pelo link do URL que forneci.
John Eisbrener

@ JohnEisbrener, obrigado por sua ajuda e eu vou dar uma olhada!
Jason

@ JohnEisbrener, eu estava tentando testar o novo atalho de teclado que você sugeriu e nenhum deles funciona para mim. Estou usando a versão mais recente do SSMS, que é a versão 13.0.16106.4. Você já os testou sozinho?
Jason

2

Não use os up/ down/ right/ leftchaves em tudo para selecionar o código seja executado.

Supondo que um mouse de computador possa ser usado, faça o seguinte:

  1. Use o mouse do seu computador para mover o cursor para o primeiro caractere a ser incluído.
  2. Próximo Mantenha pressionado e continue pressionando a Ctrltecla, depois mova o mouse para incluir o último caractere a ser incluído.
  3. Continue segurando a Ctrltecla e pressione a Etecla que executará o texto destacado.

Se você deseja excluir o código acabado de executar, continue pressionando a Ctrltecla e pressione a Deletetecla.

Suponho que seja possível que alguém tenha criado uma ferramenta para fazer isso automaticamente.


Obrigado pela sua resposta! Eu sei como usar ctrl / shift com o mouse para selecionar o código e sinto que é meio lento comparando com teclas de atalho / snippets. Você conhece atalhos / snippets que podem selecionar o código automaticamente?
Jason

4
@RLF, I vai premiar a sua resposta com um upvote para trolling sucesso (intencional ou não, não importa.)
Daniel Hutmacher

1

Eu não acho que isso seja possível. Veja a lista completa dos atalhos padrão prontos para uso aqui . Você pode personalizar algo no menu Ferramentas -> Opções


Obrigado pela sua resposta! Se as teclas de atalho não forem possíveis, você conhece algum snippet para isso?
Jason

Não que eu posso pensar
Simon Hellings
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.