2009-03-15 58 views
10

¿Hay alguna forma de implementar macros de edición de texto en SSMS? Yo lo haría, por ej. desea convertir el código como se muestra a continuación, pero con una pulsación de tecla, no una búsqueda y sustitución de expresiones regulares prolongadas.Macros en SQL Server Management Studio

Este:

INSERT INTO [TABLE] 
      ([fieldOne] 
      ,[fieldTwo]) 
    VALUES 
      (<fieldOne, datetime,> 
      ,<fieldTwo, real(24,0)) 

debe convertirse en esto:

INSERT INTO [TABLE] 
      ([fieldOne] 
      ,[fieldTwo]) 
    VALUES 
      (@fieldOne 
      ,@fieldTwo) 

Sé SSMS no soporta de forma nativa, pero también sé que es extensible, si es indocumentado, y también existe espacio para una aplicación totalmente externa que tomará el texto copiado, lo transformará y lo volverá a pegar, sin tener que abrir un editor, pegar, editar, copiar y pegar nuevamente en SSMS.

La edición de plantillas almacenadas no es una opción, ya que estas plantillas se generan dinámicamente, y usar Ctrl + Shift + M tampoco es una opción, ya que aún tengo que escribir el nombre de cada parámetro, pero sin la conveniencia pegar en el editor de consultas.

¡No hay una solución SSMS! Estoy buscando algún tipo de vudú externo que pueda ayudarme a hacer esto.

Respuesta

9

¿Qué tal un script AutoHotKey?

Dependiendo de la complejidad de las plantillas, o bien podría

  1. uso AutoHotKey para reproducir las pulsaciones de teclado necesarios para la búsqueda de expresiones regulares y sustituir o
  2. copiar la plantilla para el portapapeles y manipularlo directamente dentro de AutoHotKey antes de pegándolo de nuevo.

Estoy seguro de que la primera opción funcionará. No he intentado el segundo.

This question da una indicación de cómo se puede escribir un script AutoHotKey para escuchar los acordes del teclado.

4

Si está utilizando SSMS 2005 hacia arriba, tiene incorporado el soporte para plantillas. No es exactamente una macro completa, pero aún así es bastante útil.

La sintaxis es exactamente como la que mostró en su primer fragmento de código y simplemente presiona Ctrl + Shift + M para que aparezca un cuadro de diálogo que le pide que los valores entren en los bits entre corchetes angulares.

El servidor SQL genera la secuencia de comandos en este formato si hace clic derecho sobre una tabla y selecciona "Tabla de scripts como" y luego elige la opción de insertar, actualizar o eliminar.

También puede crear sus propias plantillas personalizadas o modificar una de las existentes (haga clic en Ver -> Explorador de plantillas para obtener acceso a las otras plantillas incorporadas).

Hay un short article en MSDN que explica cómo empezar a usar las plantillas.

0

El primer código es la plantilla del viejo MS Query Analyzer. El acceso directo al llenado es Ctrl + M (pero no estoy seguro, tal vez sea Ctrl + Shift + M).

Debe haber la misma función en los SSMS más recientes.

+0

Eso no me ayuda. También podría editar manualmente la secuencia de comandos. – ProfK

0

Estaba buscando otra cosa, pero encontré esta pregunta. Si todavía está buscando algo, pruebe el paquete de herramientas SSMS: http://www.ssmstoolspack.com/ Tiene macros y un montón de otras cosas interesantes. ¡Y es gratis!

+0

SSMS Tools Pack es un gran complemento, pero no creo que tenga macros. – onedaywhen

+0

Solo como advertencia, ya no es gratis para SSMS 2012 y posteriores. – ShawnFumo

0

Normalmente copio el código en otro editor (Notepad ++ o Delphi/RAD Studio editor), hago mis cosas macro y luego lo vuelvo a pegar en SSMS.

1

Para SSMS 2016 puede usar mi extensión Visual Commander. Admite macros de grabación/reproducción y comandos C#/VB personalizados para manipulaciones de texto del editor.

+0

Gracias, echaré un vistazo y estoy seguro de que será útil en algún momento, pero rara vez necesito un macro en Visual Studio, que parece ser el objetivo de su producto. Era * SQL Server * Management Studio para el que estaba buscando macros. – ProfK

+0

@ProfK Sí, Visual Commander se desarrolló originalmente para VS, pero la versión más reciente agregó soporte para SSMS 2016 https://visualstudioextensions.vlasovstudio.com/2016/08/26/automate-ssms-2016-with-visual-commander/ –

+0

Oh brillante. Instalarlo ahora. – ProfK

Cuestiones relacionadas