Atajos / Fragmentos para seleccionar un bloque de código

8

Estoy usando SQL Server Management Studio 2016 en Windows 10. Estoy cansado de usar las teclas shift / ctrl + arriba / abajo / derecha / izquierda para seleccionar el código que quiero ejecutar. Me pregunto si hay atajos / fragmentos para seleccionar un bloque de código que se separó de otro código por líneas en blanco.

Aquí hay un ejemplo de código:

select *
from tab1

select *
from tab2

select *
from tab3

Digamos, mi cursor está dentro del bloque del medio y ¿cuál es la mejor manera de seleccionar el bloque del medio?

Jason
fuente
1
JetBrains DataGrip (Ctrl + Enter). Barato también. IU oscura también.
Nelz

Respuestas:

4

No estoy afiliado a Red-Gate, pero me gustaría señalar que si presiona Shift-F5, cuando posee una copia nueva de SQL Prompt, entonces la consulta en la que está el cursor, se marcará en verde y se ejecutará .

Realmente me ha ahorrado muchas pulsaciones de teclas.

Henrik Staun Poulsen
fuente
¡Muchas gracias por tu respuesta! Traté de sql puntilla y fue increíble! ¡Pensaré en comprarlo después de la prueba!
Jason
1
Tenga en cuenta que en realidad no selecciona el código, ya que no puede usar este método para copiar el bloque de código que se ha ejecutado.
Thomas Rushton
4

Usando Autohotkey, pude desarrollar una solución para seleccionar un bloque de código y aquí está el script que tengo:

!b::

send ^f

sendraw ^\r$

send {F3}

send +{F3}

send {Esc}

send {down}

send ^{=}

return

Específicamente, presionar Alt + B invocará este script, y el script seleccionará el bloque de código donde se encuentra el cursor. Tenga en cuenta que el bloque de código debe estar separado de otros bloques de código por líneas en blanco, y el bloque de código no puede tener un espacio en blanco de líneas dentro de sí mismo.

Los pasos clave del guión about son

  • usando la expresión regular "^ \ r $" para ubicar las líneas en blanco encima y debajo del cursor

  • moviendo el cursor a estas dos líneas en blanco una por una

  • usando ctrl + = para seleccionar el bloque de código entre estas dos líneas en blanco.

Tenga en cuenta que! / ^ / + Son alt / ctrl / shift por separado.

Jason
fuente
No sabía que podía hacer esto con AutoHotKey. Mucho menos caro que SQL Prompt. Gracias por tu publicación.
Henrik Staun Poulsen
3

Una forma de seleccionar rápidamente bloques de código dentro de SSMS es minimizar el código usando el -botón al lado de la palabra clave principal en una declaración SQL (por ejemplo, SELECCIONAR, ACTUALIZAR, BORRAR, CON, etc.), luego resalte esa línea y presione F5para ejecutarla.

ingrese la descripción de la imagen aquí

Dependiendo de su versión de SSMS (obviamente se prefieren las versiones más nuevas en este caso), también hay algunos atajos de teclado que puede usar para contraer / expandir una sección. El enlace de método abreviado de teclado proporcionado por la respuesta anterior de Simon Hellings alude a teclas de acceso rápido que ya están configuradas, pero no puedo confirmar que realmente funcionen. Sin embargo, puede configurar algunas teclas de acceso rápido personalizadas para hacer esto de la siguiente manera:

  1. Las funciones que nos interesan para configurar las teclas de acceso rápido se encuentran en Edit-> OutliningOpciones de menú: ingrese la descripción de la imagen aquí

  2. Para configurar las teclas de acceso rápido, navegue hasta Tools-> Options...-> Environment-> Keyboard-> Keyboard. Escriba en Outlinel comando Mostrar que contiene: cuadro. Luego asigne una nueva combinación de teclas de acceso directo para Edit.ToggleAllOutliningy Edit.ToggleOutliningExpansiony presione Assign: ingrese la descripción de la imagen aquí

  3. Ahora, verifique los accesos directos que tomó después de presionar Ok y sus teclas de acceso directo deberían funcionar como se esperaba. Como puede ver, le asigné el mío CTRL+ALT+Left Arrowy CTRL+ALT+Right Arrow, pero puede usar lo que quiera: ingrese la descripción de la imagen aquí

Finalmente, si esto no funciona, puede que tenga que cambiar a un cliente SQL diferente. Parece que la funcionalidad que desea es similar a la ejecución de un bloque Oracle PL / SQL a través de CTRL + ENTEROracle SQL Developer. Usted puede utilizar Oracle SQL Developer para conectarse a SQL Server mediante controladores JDBC de bases de datos de terceros ( árbitro ), pero yo no lo recomiendo.

John Eisbrener
fuente
Sí, esto solo es razón suficiente para instalar Toad y usar F9. Sin embargo, Toad tiene su propio conjunto de peculiaridades.
crokusek
¡Gracias por su respuesta! ¿Cómo puedo plegar el nodo del árbol sin usar el mouse?
Jason
@ Jason - He actualizado mi respuesta con los atajos de teclado. Necesitará una versión más nueva de SSMS, ya que esta funcionalidad no estaba disponible en todas las versiones como se indica en el enlace URL que he proporcionado.
John Eisbrener
@JohnEisbrener, gracias por tu ayuda y los revisaré.
Jason
@JohnEisbrener, intentaba probar el nuevo método abreviado de teclado que sugirió y ninguno de ellos me funciona. Estoy usando la versión más nueva de SSMS, que es la versión 13.0.16106.4. ¿Alguna vez los has probado por ti mismo?
Jason
2

No use las teclas up/ down/ right/ leftpara seleccionar su código para ejecutar.

Suponiendo que se pueda usar un mouse de computadora, haga esto:

  1. Use el mouse de su computadora para mover el cursor al primer carácter que se incluirá.
  2. Siguiente Mantenga presionado y continúe presionando la Ctrltecla, luego mueva el mouse para incluir el último carácter que se incluirá.
  3. Continúe presionando la Ctrltecla, luego presione la Etecla que ejecutará el texto resaltado.

Si desea eliminar el código que acaba de ejecutar, debe continuar presionando la Ctrltecla y luego presionar la Deletetecla.

Supongo que es posible que alguien haya creado una herramienta para hacerlo automáticamente.

RLF
fuente
¡Gracias por su respuesta! Sé cómo usar ctrl / shift con un mouse para seleccionar código y creo que es un poco lento en comparación con las teclas de acceso rápido / fragmentos. ¿Conoce alguna tecla abreviada / fragmento que pueda seleccionar el código automáticamente?
Jason
44
@RLF, otorgaré su respuesta con un voto a favor para un curricán exitoso (intencional o no, no importa)
Daniel Hutmacher
1

No creo que esto sea posible. Vea la lista completa de accesos directos predeterminados aquí . Puede personalizar algo desde las herramientas -> menú de opciones

Simon Hellings
fuente
¡Gracias por tu respuesta! Si las teclas de acceso rápido no son posibles, ¿conoce algún fragmento de esto?
Jason
No es que se me ocurra
Simon Hellings