Formater SQL dans SQL Server Management Studio


250

Dans Visual Studio et autres IDE, vous pouvez facilement formater automatiquement votre code avec un raccourci clavier, via le menu ou automatiquement lorsque vous tapez.

Je me demandais s'il y avait encore un moyen d'activer cette fonctionnalité standard dans SQL Server Management Studio?

Je travaille avec des procs stockés de grande taille qui sont un gâchis mutilé de SQL mal formaté et ce serait bien si je pouvais simplement aller "Sélectionner tout -> Formater SQL"


1
SQLinForm fournit une fonctionnalité de raccourci clavier
Guido

1
il a maintenant un formateur en ligne gratuit: sqlinform.com/sql_formatter_online.html
Guido


Mise à jour de Q sur le sujet
Andrew

Réponses:


270

Réponse tardive, mais j'espère que cela en vaut la peine: le formateur T-SQL du pauvre est un formateur T-SQL open source (gratuit) avec une prise en charge complète des scripts / lots T-SQL (tout DDL, tout DML), plug-in SSMS, bloc de ligne de commande formateur et autres options.

Il est disponible pour une utilisation immédiate / en ligne sur http://poorsql.com , et vient aujourd'hui de passer à la "version 1.0" (il était en version bêta depuis quelques mois), après avoir récemment pris en charge les MERGEdéclarations, les OUTPUTclauses et d'autres choses délicates .

Le complément SSMS vous permet de définir votre propre raccourci clavier (la valeur par défaut est Ctrl- K, Ctrl- F, pour correspondre à Visual Studio) et formate l'intégralité du script ou uniquement le code que vous avez sélectionné / mis en surbrillance, le cas échéant. Le formatage de sortie est personnalisable.

Dans SSMS 2008, il se combine parfaitement avec l'intellect sense intégré, fournissant efficacement plus ou moins la même fonctionnalité de base que l'invite SQL de Red Gate (l'invite SQL a, bien sûr, des éléments supplémentaires, comme des extraits, des scripts d'objet rapides, etc).

Les commentaires / demandes de fonctionnalités sont plus que bienvenus, veuillez lui donner un tourbillon si vous en avez l'occasion!

Divulgation: C'est probablement déjà évident, mais j'ai écrit cette bibliothèque / cet outil / ce site, donc cette réponse est aussi une auto-promotion sans vergogne :)


2
Sur SQL Server 2012, le raccourci par défaut Ctrl + K, Ctrl + F ne fonctionne pas car il indique qu'il est déjà lié à Format Selection . Cela a fonctionné après l'avoir changé de DataWarehouse Designer::Ctrl+k, Ctrl+fen Global::Ctrl+k, Ctrl+j.
Marco Lackovic

5
voir les astuces pour les installations SSMS 2014 stackoverflow.com/questions/23303026/…
Alexander Sigachov

2
Excellent outil mais non compatible avec le RTM 2016
dmeglio

1
@ dman2306 - programme d'installation compatible avec 2016 (et 17) maintenant disponible.
Tao

2
@Jordan: dans Windows 10, le .Net Framework 3.5 SP1 (y compris .Net 2.0) est une fonctionnalité facultative de Windows, qui peut être activée dans l'écran / fonctionnalité "Activer ou désactiver les fonctionnalités de Windows". Il s'appelle ".NET Framework 3.5 (comprend .NET 2.0 et 3.0)", et il se trouve tout en haut de la liste des fonctionnalités optionnelles - cela ne fonctionne-t-il pas pour vous? (oui, désolé, nécessiter .Net 2.0 de nos jours n'est probablement pas raisonnable ... Problème créé github.com/TaoK/PoorMansTSqlFormatter/issues/199 pour suivre)
Tao

137

Il y a une astuce spéciale que j'ai découverte par accident.

  1. Sélectionnez la requête que vous souhaitez formater.
  2. Ctrl+ Shift+ Q(Cela ouvrira votre requête dans le concepteur de requêtes)
  3. Alors allez-y OK Voila! Le concepteur de requêtes formatera votre requête pour vous. La mise en garde est que vous ne pouvez le faire que pour les instructions et non pour le code de procédure, mais c'est mieux que rien.

9
Bon conseil. Malheureusement, bien que cette méthode fonctionne, elle fait un travail assez mauvais à mon humble avis. Mais au moins, il y a quelque chose de intégré.
John Homer

il a formaté mais pas la manière attendue. Quoi qu'il en soit, quelque chose est mieux que rien :)) ..... Merci pour le conseil.
Jaini Naveen

2
Eh bien, pour autant que je sache, bien qu'il ne fasse pas vraiment le meilleur travail, il fait quelque chose, et c'est prêt à l'emploi, et vous n'avez pas à payer pour cela. Mais une seule personne a pensé à la cocher comme utile. Je suis vraiment étonné, je pensais que j'avais celui-ci arrimé ;-)
Justin

1
J'ai découvert que, de même, les requêtes sont formatées lorsqu'elles sont collées dans une nouvelle vue. Mais c'est beaucoup plus propre ... +1.
Feckmore

16
cela ne fonctionnera que si le contenu de la requête peut représenter graphiquement.
kbvishnu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.