22

I recently started using Management Studio 2012. When using MySQL Workbench, a handy feature was that I could stay all in lower case and any reserved word (like SELECT, INSERT) would convert to upper case automatically. How do I replicate this behavior in SSMS?

  • 2
    Does anyone else find this really unworkable? Having to hit CAPS for reserved words then again to type variable names etc? It really slows down my typing. – David Folksman Aug 22 '13 at 13:52
  • Of course there is always the option of not making the keywords upper case. Not as easy to read, but you don't have to hit the shift key. :) – Kenneth Fisher Aug 22 '13 at 14:39
  • wow just come back to this. How do I add adverts to this post haha! – David Folksman Apr 17 '18 at 14:16
27

No, Management Studio does not have this native functionality in any version from 2005 -> 2016 CTP 3.2. You may want to check out 3rd party add-ins, like Mladen Prajdić's SSMS Tools Pack or Red-Gate's SQL Prompt, both of which have the capability to format a block of code, including automatically upper-casing keywords. However I don't know of any tool that will do this automatically as you type.

For me, I have been doing it so long, it just comes naturally, and not pressing Shift would actually slow me down. When I get someone else's code where the keywords are lower case, I highlight either the whole block or the offending sections, and hit Ctrl+Shift+U. If I have to highlight the whole section, I then go in to the object / column names and use IntelliSense to case them correctly (I have a real hang-up about ensuring that all keywords are upper case and all entity names match the metadata exactly, because you never know when your code will be deployed to a case sensitive collation).

  • Unbelievable that SSMS does not have this feature built in natively ! – nanonerd Mar 23 '17 at 19:30
15

In addition to solutions that are already mentioned, I'd suggest using ApexSQL Refactor - a free SSMS and Visual Studio add-in.

ApexSQL Refactor can help you create your own SQL formatting standards. It can be used to distribute and enforce SQL formatting rules among team members. To perform capitalization formatting, it is enough to:

  1. Download ApexSQL Refactor
  2. Launch your SQL Server Management Studio or Visual Studio’s and click ApexSQL Refactor on the Main menu
  3. From the ApexSQL Refactor menu, click the Format T-SQL code option
  4. Select Formatting options Set the specific option (Capitalization)
  5. Preview the option’s effect on the current query or a built-in example

Capitalization formatting Note: Before configuring capitalization standards, ensure your database doesn’t have case-sensitive collation. This can cause big problems when playing with capitalization.

If you wish to learn more, I suggest to read these 2 articles to see how capitalization is handled with ApexSQL Refactor:

7

One more very simple solution: use notepad++. Inside there is very good plugin called Poor man's sql formatter. The drawback is that you have to paste SQL inside the notepad++. But it is free.

There is also a web page, but I did not try it.

  • 2
    He also wrote a plug-in for SSMS. I use it and recommend it all the time. – Jonathan Fite Feb 11 '16 at 17:24
  • I don't know that I will try it for sure! 10x for the comment @Jonathan Fite! – Bogdan Bogdanov Feb 12 '16 at 8:37
5

SQL Pretty Printer does it pretty well for me. It's a small and easy-to-install plugin for SSMS. You set up your preferences and then whenever you want to format code, just click the icon on its toolbar.

  • 3
    FYI: Free trial, or $50 to purchase. – kmote Feb 11 '16 at 16:55
4

I found a hidden gem for auto upper/lower case formatting and indenting in SSMS that I will forever use. No more "New Query".

  • Rt-Click table name within Object Explorer
    • Edit Top 200 Rows
      • QueryDesigner menu option
        • Pane
          • SQL. Write or drop in some ugly, non formatted SQL. QueryDesigner
            • Verify SQL Syntax will UC reserved words and indent for you.

protected by Community Jun 12 '17 at 19:39

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.