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"

lomaxx
la source
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
En ligne, vous pouvez utiliser devtoolsonline20190908040816.azurewebsites.net/DevTools/…
GomuGomuNoRocket
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 :)

Tao
la source
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.
Justin
la source
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