Formattare SQL in SQL Server Management Studio


250

In Visual Studio e altri IDE, puoi facilmente formattare automaticamente il codice con una scorciatoia da tastiera, attraverso il menu o automaticamente durante la digitazione.

Mi chiedevo se esiste ancora un modo per abilitare questa funzionalità standard in SQL Server Management Studio?

Sto lavorando con alcuni proc memorizzati di grandi dimensioni che sono un disastro maniacale di SQL mal formattato e sarebbe bello se potessi semplicemente andare "Seleziona tutto -> Formato SQL"


1
SQLinForm fornisce una funzione di scelta rapida
Guido,

1
ora ha un formatter online gratuito: sqlinform.com/sql_formatter_online.html
Guido


Q aggiornata sull'argomento
Andrew,

Risposte:


270

Risposta in ritardo, ma si spera che valga la pena: il formattatore T-SQL di Poor Man è un formattatore T-SQL open source (gratuito) con supporto batch / script T-SQL completo (qualsiasi DDL, qualsiasi DML), plug-in SSMS, blocco della riga di comando formattatore e altre opzioni.

È disponibile per l'uso immediato / online su http://poorsql.com e proprio oggi è laureato in "versione 1.0" (era in versione beta per alcuni mesi), avendo appena acquisito supporto per MERGEdichiarazioni, OUTPUTclausole e altre cose schizzinose .

Il componente aggiuntivo SSMS consente di impostare il proprio tasto di scelta rapida (l'impostazione predefinita è Ctrl- K, Ctrl- F, affinché corrisponda a Visual Studio) e formatta l'intero script o solo il codice selezionato / evidenziato, se presente. La formattazione dell'output è personalizzabile.

In SSMS 2008 si combina perfettamente con l'intelli-sense integrato, fornendo in modo efficace più o meno la stessa funzionalità di base del prompt SQL di Red Gate (il prompt SQL ha, ovviamente, roba extra, come frammenti, script rapidi di oggetti, eccetera).

Le richieste di feedback / funzionalità sono più che benvenute, per favore fai un giro rapido se ne hai la possibilità!

Divulgazione: questo è probabilmente già ovvio, ma ho scritto questa libreria / strumento / sito, quindi questa risposta è anche autopromozione spudorata :)


2
Su SQL Server 2012 il collegamento predefinito Ctrl + K, Ctrl + F non funziona in quanto indica che è già associato a Selezione formato . Ha funzionato dopo averlo cambiato da DataWarehouse Designer::Ctrl+k, Ctrl+fa Global::Ctrl+k, Ctrl+j.
Marco Lackovic,

5
vedere suggerimenti per SQL Server Management Studio 2014 instalations stackoverflow.com/questions/23303026/...~~V~~number=plural~~plural~~3rd
Alexander Sigachov

2
Ottimo strumento ma non compatibile con RTM 2016
dmeglio

1
@ dman2306 - programma di installazione compatibile con 2016 (e 17) ora disponibile.
Tao,

2
@Jordan: in Windows 10 .Net Framework 3.5 SP1 (incluso .Net 2.0) è una funzionalità opzionale di Windows, che può essere abilitata nella schermata / funzionalità "Attiva o disattiva funzionalità di Windows". Si chiama ".NET Framework 3.5 (include .NET 2.0 e 3.0)" ed è proprio in cima all'elenco delle funzionalità opzionali - non funziona per te? (sì, scusate, richiedere .Net 2.0 in questo giorno ed età probabilmente non è ragionevole ... Creato problema github.com/TaoK/PoorMansTSqlFormatter/issues/199 per tracciare)
Tao

137

C'è un trucco speciale che ho scoperto per caso.

  1. Seleziona la query che desideri formattare.
  2. Ctrl+ Shift+ Q(Questo aprirà la tua query in Query Designer)
  3. Quindi vai OK OK! Query Designer formatterà la query per te. Un avvertimento è che puoi farlo solo per le dichiarazioni e non per il codice procedurale, ma è meglio di niente.

9
Bel consiglio. Purtroppo, mentre questo metodo funziona, fa un lavoro piuttosto scadente. Ma almeno c'è qualcosa di incorporato.
John Homer,

formattato ma non nel modo previsto. Comunque qualcosa è meglio di niente:) ..... Grazie per il suggerimento.
Jaini Naveen,

2
Bene, per quanto posso dire, anche se non fa davvero il miglior lavoro, fa qualcosa, ed è pronto all'uso, e non devi pagare per questo. Ma solo una persona ha pensato di contrassegnarlo come utile. Sono davvero stupito, pensavo di averlo ancorato ;-)
Justin il

1
Ho scoperto che, allo stesso modo, le query vengono formattate quando incollate in una nuova vista. Ma questo è molto più pulito ... +1.
Feckmore,

16
questo funzionerà solo se il contenuto della query è in grado di rappresentare graficamente.
kbvishnu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.