Since SQL Server Management Studio 19 has just been released last week, I’ve figured I’d take this opportunity to go through my configuration preferences.
The following configuration options are found in the Tools > Options menu unless specified otherwise.
Disable checking for line ending consistency of .sql files. This ends up just being noise when you open .sql files with Unix line endings (LF) fairly often. Furthermore, the warning also has a prompt to convert line ending to Windows line endings (CR LF), which you might not want if you want to respect the original line endings.
Fonts and Colors
If you have a high DPI display, I recommend increasing the Text Editor font size to at least 13.
Also, for screenshots, recordings or presentations, increasing the Grid and Text Results‘ font size to 10 makes result sets and messages look a lot nicer.
Note that SSMS requires a restart after changing these two options.
Import and Export Settings
On my own computer, this doesn’t matter as much so I just point it to a directory in My Documents, but on my work laptop I like to set this to a directory that’s synced with OneDrive.
Keyboard > Query Shortcuts
I like to set up shortcuts for sp_BlitzFirst, sp_BlitzWho and sp_Blitz. This is even more useful if you’re a prod DBA and your team sets up that one database filled with troubleshooting stored procedures on all the instances you manage.
One addition that would be useful to this feature, is to have the possibility to bind shortcuts to .sql files (please vote the request if you agree).
This would be great for situations where you don’t have the possibility to save troubleshooting stored procedures on the instance, and have to use your own scripts. Good examples for this scenario would be consultants and development DBAs.
In 11 years of working with SQL Server, I’ve never said to myself “Oh, I’m starting up SSMS just to look at the Object Explorer”, so I’ll always opt to have SSMS auto open both OE and the query window at startup.
Tabs and Windows
To have SSMS behave similar to a browser when opening up multiple editor tabs, I check “Insert new tabs to the right of existing tabs”.
I also check “Show pinned tabs in a separate row” to have an extra row dedicated for tabs that I’d like to get back to without having to look through the 10+ editor tabs I usually have opened.
And this is how it looks after pinning a couple of editor tabs.
In the General section, I check “Line Numbers”.
And in the Scroll Bars section I switch from bar mode to map mode, for easier navigation of long T-SQL scripts, text, and XML files.
With map mode enabled, the scroll bar turns into a map of the current file which you can use to navigate up and down the script/file.
And, when hovering the mouse over a portion of the scroll map, a zoomed-in pop up of that portion will appear.
Editor Tab and Status Bar
To keep editor tabs’ text to a minimum, I only want to see the file and database name. I tend to check the server name less often, so having it in the status bar is enough.
I set both “Include login name” and “Include server name” to false in the “Editor Tab and Status Bar” section.
In the SQL Server section I uncheck “Check for open transactions before closing T-SQL query windows” because I like not having to go in Task Manager and kill SSMS when I want to close it after a long day.
In the Advanced section, I check both “SET STATISTICS TIME” and “SET STATISTICS IO” since most of my work revolves around performance tuning and I’d rather have those options enabled by default for my session.
In the Results to Grid section, I set XML Data to Unlimited in order to avoid issues when retrieving large execution plans.
I’ve also updated this post to add “Retain CR/LF on copy or save” after ending up needing it checked this week. This is useful for output that contains query text (like sp_BlitzWho, sp_BlitzLock, sp_BlitzCache) and you need to keep its original formatting when pasting the query from the result to the editor window.
SQL Server Object Explorer
In the Commands section, I set “Value for Select top <n> Rows command” to 10. This is a personal preference of an option I rarely use, but, when I do, I don’t see the point in returning more than 10 rows.
I’m a big fan of the SQL Pretty Printer add-in for SSMS from Gudu Software, which installed without any issues on SSMS 18, but seems to not install properly on 19.
Luckily there’s a quick way to fix that.
- Create a Plugins directory in SSMS 19’s Common7 directory. In my case, the path is
C:\Program Files (x86)\Microsoft SQL Server Management Studio 19\Common7\
- If you’ve had the SQL Pretty Printer add-in installed for SSMS 18, or older versions, uninstall it first. You can find it as “SQL Pretty Printer for SSMS” in Control Panel > All Control Panel Items > Programs and Features
- (Re)install it
- Copy the ppforssms direcotry from
C:\Program Files (x86)\Gudusoft\to
C:\Program Files (x86)\Microsoft SQL Server Management Studio 19\Common7\Plugins\
- Restart SSMS
After restarting SSMS, the plugin will be available.
If you use registered servers, or, even better, if you’re environment has CMS configured, I recommend enabling the the Registered Servers menu by pressing Ctrl+Alt+G or from the View menu, by clicking on “Registered Servers”.
I can’t recommend CMS enough for cases where you have to manage a large environment with multiple instances. It also allows you to group instances in whatever way you see fit, like by categories (i.e.: Dev, QA, Prod) and host name, in case you have more than one instance on a VM.
Remove the Standard toolbar
Since I rely more on keyboard shortcuts and rarely use most of the buttons in the Standard toolbar, I like to remove it by right clicking in any blank space on the toolbar and unchecking Standard.
And now there’s less clutter in the toolbar area.
Nice, I’ve never really spent much time in the SSMS Options, so this was handy.
One thing I’d do different is in the Editor Tab and Status Bar. I’d set Database Name and Logon Name = False, and only keep the File and Server Names. My logic being I can see the current Database Name in the Toolbar, and in the context of my work I’m (almost) always using my assigned AD Logon.
It would be good if it were possible to export and reuse the config file. Being a consultant within a larger company I’m very seldom working on my own computer, I’m almost always connected to a clients jump host/management server via a VPN with RDP, or similar. With a bunch of clients I’m responsible for and then still needing to connect to multiple other clients for project, etc. I’d need to set these every time I worked on a new client for the first time.
I have however set most of these on my VM/Test Server so I’ll see which ones I want to apply at my clients.
Thank you for your input!
Regarding exporting and importing settings: It’s doable, and that’s why I change the configuration file path in “Import and Export Settings”.
Although I do recommend you verify if all the settings have been properly imported in your new SSMS install, since some of them might error out and fail to apply during the import.