2009-03-15 20 views
10

Esiste un modo per implementare macro di modifica del testo in SSMS? Vorrei, ad es. piace convertire il codice come mostrato di seguito, ma con una pressione di un tasto, non una ricerca regex prolisso e sostituirla.Macro in SQL Server Management Studio

questo:

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

deve diventare questo:

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

So SSMS non supporta nativamente questo, ma so anche che è estendibile, se privi di documenti, e v'è anche spazio per un'applicazione totalmente esterna che prende il testo copiato, lo trasforma e lo incolla indietro, senza dover aprire un editor, incollarlo, modificarlo, copiarlo e incollarlo su SSMS.

La modifica dei modelli memorizzati non è un'opzione, poiché questi modelli vengono generati dinamicamente e l'utilizzo di Ctrl + Maiusc + M non è un'opzione, poiché devo ancora digitare ogni nome di parametro, ma senza la comodità di copiare e incollando nell'editor di query.

Non esiste una soluzione SSMS! Sto cercando una sorta di voodoo esterno che possa aiutarmi a farlo.

risposta

9

Che dire di uno script AutoHotKey?

A seconda della complessità dei modelli, si potrebbe o

  1. uso AutoHotKey per riprodurre le sequenze di tasti necessari per la ricerca regex e sostituire o
  2. copiare il modello per negli appunti e manipolarlo direttamente all'interno AutoHotKey prima di incollandolo indietro.

Sono sicuro che la prima opzione funzionerà. Non ho provato il secondo.

This question fornisce un'indicazione di come uno script AutoHotKey può essere scritto per l'ascolto degli accordi di tastiera.

4

Se si utilizza SSMS 2005 verso l'alto, ha il supporto integrato per i modelli. Non è esattamente macro in piena regola, ma non meno è ancora abbastanza utile.

La sintassi è esattamente come mostrato nel primo frammento di codice e basta premere Ctrl + Maiusc + M per far apparire una finestra di dialogo che richiede di inserire i valori nei bit racchiusi tra parentesi angolari.

Il server SQL genera script in questo formato se si fa clic con il pulsante destro del mouse su una tabella e si seleziona "Tabella di script come", quindi scegliere l'opzione di inserimento, aggiornamento o eliminazione.

È inoltre possibile creare modelli personalizzati o modificarne uno esistente (fare clic su Visualizza -> Esplora modelli per accedere agli altri modelli incorporati).

C'è un short article su MSDN che spiega come iniziare con i modelli.

0

Il primo codice è un modello del vecchio MS Query Analyzer. Il collegamento al riempimento è Ctrl + M (ma non sono sicuro, forse è Ctrl + Maiusc + M).

Ci dovrebbe essere la stessa funzionalità nei nuovi SSMS.

+0

Questo non mi aiuta. Potrei anche modificare manualmente lo script. – ProfK

0

Cercavo qualcos'altro, ma ho trovato questa domanda. Se stai ancora cercando qualcosa, prova il pacchetto di strumenti SSMS: http://www.ssmstoolspack.com/ Dispone di macro e un sacco di altre cose belle. Ed è gratis!

+0

SSMS Tools Pack è un ottimo componente aggiuntivo ma non credo che abbia macro. – onedaywhen

+0

Proprio come avvertimento, non è più gratuito per SSMS 2012 e versioni successive. – ShawnFumo

0

Di solito copio il codice in un altro editor (Notepad ++ o Delphi/RAD Studio editor), faccio le mie macro e poi lo rimando in SSMS.

1

Per SSMS 2016 è possibile utilizzare l'estensione Visual Commander. Supporta la registrazione/riproduzione di macro e comandi C#/VB personalizzati per le manipolazioni del testo dell'editor.

+0

Grazie, darò un'occhiata e sono certo che a un certo punto si rivelerà utile, ma raramente ho bisogno di una macro in Visual Studio, che il tuo prodotto sembra mirato. Era * SQL Server * Management Studio cercavo macro per. – ProfK

+0

@ProfK Sì, Visual Commander è stato originariamente sviluppato per VS, ma la recente versione ha aggiunto il supporto per SSMS 2016 https://visualstudioextensions.vlasovstudio.com/2016/08/26/automate-ssms-2016-with-visual-commander/ –

+0

Oh geniale. Installandolo ora. – ProfK