1

In the interest of disambiguating between when I am connecting to non-production and production, I utilize vssettings for a specific theme in Management Studio (fire-and-brimstone style when in prod, calming blues in non-prod).

Previously our non-production access was via one account, and our production access was via a more restricted account. With that method I was able to set a theme for each account one time and all was well. Now all access is using the elevated account.

Is there a way to tell SSMS at launch time to use a specific theme? Or a programmatic way to do this without going through "Tools > Import and Export Settings" every time? I'm using the SQL 2014 version of SSMS.

Thanks.

2
  • 1
    Since having 2 accounts worked for you, why not continue using 2 accounts, even if the permissions are identical?
    – RLF
    Feb 25, 2015 at 14:52
  • It wasn't my decision to make. Feb 25, 2015 at 15:14

1 Answer 1

1

I haven't played with themes, but you can set per-connection properties, including the color of the connection info bar at the bottom of the query tab. And these settings are saved.

If you have a query tab open, go to "Change Connection" (either the button in the button bar, or via the Query menu, top item should be Connection >, and when it pops up the "Connect to a Database Engine" dialog, click on the Options >> button. Go to the Connection Properties tab and the bottom option is Use custom color:. Check the check-box for it and click on the Select... button on the right.

Just use different colors for the different servers/environments.


Technically speaking, there is a means of programmatically interacting with SSMS: write a plug-in / extension. I will list some resources below that deal with this topic. I have not tried it yet myself, but it seems as though it might be a lot of effort for a one-time config update. On the other hand, if SSMS will not record the setting for 100, let alone 400, separate connections (not sure what the limit is), then maybe this would be worth the effort.

5
  • Thanks for the answer. Yeah, I do that too. Healthy paranoia, right? You can set that globally, which falls into the same boat as a vssettings theme. And I have 400+ servers to maintain, so I'm hoping there's a programmatic way to do it. If no one else chimes in I'll take what you have an answer. Feb 25, 2015 at 20:33
  • @ZabadakGalorex I would highly doubt that there would be a programmatic way to do this. This is not something within SQL Server but user settings stored locally via Management Studio. I didn't see anything in the .vssettings file. I checked the registry but didn't see my stuff there either, unless it was serialized as a blob of stuff in which case that wouldn't help either. Feb 25, 2015 at 21:30
  • @ZabadakGalorex Well, there might be a slight chance of doing this, but I can't get very far as I think my system is a little hosed. But check out the SSMS "Command Window". I can't get it to work, but I can get an "Immediate" window by going to Debug | Windows | Immediate. In there, I can enter in just >Query.ChangeConnection and it will open the Change Database Connection dialog. If we can figure out how to get to that specific connection property, you might could paste in 400 lines ;-). So, getting closer perhaps? Feb 26, 2015 at 6:33
  • 1
    @ZabadakGalorex Hey, I just had another thought and added an update to my answer (below the line) about a way to programmatically interact with SSMS, though just not sure about level of effort required. Feb 26, 2015 at 16:33
  • Thanks for the extra effort, very cool. I personally don't work with plug-in/extensions but I'll ask around. In the mean time if you open two SSMS windows, then set the theme in each, it seems to 'hold' that for the duration the window is open. A bit more manual work each morning. Feb 26, 2015 at 17:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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