During my SQL Devlife I tried lots of SQL Server management studio add-ins. Some days ago I tried SSMSBoost. Since I’ve already spoken about SSMSToolsPack and SQLPrompt, I’d like to focus this post on the capabilities that SSMSBoost adds to Sql Server Management Studio. I’ll speak about some of the available features, in the following order:
- UI/User experience capabilities
- Connections management
- Extended menu options
- Grid commands
UI/User experience capabilities
Every message, error, information, is shown in a message stack panel on the top-right corner of SSMS.
Shortcuts (force override)
You can configure the default keyboard shortcut provided by SSMS using the Settings form.
You can choose the favorite connection that can be set as a preferred connection at startup. Each connection has its own set of options:
In addition you can press the right mouse button and set a server as a “preferred connection“. Preferred connections are stored in a list that you can manage using the settings view. Each connection can be configured as described above.
Set as active connection
Right clicking on a database and selecting the “set as active connection” changes the connection context of the current query window. Using this feature combined with the preferred connection colors can be very useful.
You can configure an alert tip by environment. For instance, you can choose to show an alert when scripting on production environment in order to prevent any wrong change.
You can use wildcards when searching a Sql Server object. One of the good point of this feature is the capability to search cross database and including more than one database. You can select an object from the result list and script the related CREATE STATEMENT.
This feature has two drawbacks in my opinion:
- it allows only the CREATE statement (it’s good to have also the ALTER one)
- the search does not work on definitions, it works just with object names
Extended menu options
You can press the right mouse button and select “Locate Object” in order to move the focus on the object you’re searching for in the object explorer. It’s similar to the “Locate on the solution explorer” in Visual Studio when using JetBrains ReSharper.
This is the most important feature in my opinion. It’s the “go to definition” we’re waiting for. Especially for the ones that are used to move into Visual Studio classes. It’s awesome and allows us to get the ALTER script of an object in order to directly modify it. It is possible to script as ALTER or CREATE.
go to BEGIN/END
You can navigate your nested code using this feature. I strongly suggest to modularize your code with procedures or functions instead of nesting more than 2/3 levels, however going to BEGIN/END of the current level can be useful when the code is too difficult to read.
This is one of the best features available on the SSMSBoost tool. You can display a binary (LOB) in a readable format. Pressing right click on mouse on a binary field shows the following options:
Find in Results Grid
Another cool feature is the find capability on results. When you execute queries using the grid display, you can find into data:
It supports also the multi grid and the wildcard search. If you have more than one resultset you can search for a string like “Ale*” and the tool find the next occurence or all the occurrences in a simple report. I tried also with lots of data and it worked. It’s only a matter of time. You can search row by row or column by column, like Excel does.
With this feature you can script a subset of a results grid into a template. There are some default outputs like:
Actually “C# Enum” was added by me and we’ll speak about creating templates in a future post. That templates saves me often 😉
As you can see you can script an INSERT INTO EXEC sp (comfortable) or a WHERE condition with IN operator (useful when you want to filter by a subset of data).
You can create templates yourself, as many as you want.
I really think that enhancing our Management Studio can be very useful in order to improve productivity. Every add-in I’ve installed on my SSMS is useful for a specific set of capabilities. As I said at the beginning of this post, I’m using at the moment more than one third party tools:
SSMSToolsPack (by Mladen Pradjc)
- regions – you can create region of code (–#region –#endregion) which can be collapsed/expanded
- history and session management – you can recover previous sessions or commands from a history tab
- debug sections – you can add a comment in order to try a script in “debug” or “release” (different executions with commented areas)
- execution plan analyzer – you can watch execution plans with a deeper perspective (with alerting and more statistics)
SQL Prompt (by Red-Gate)
- format SQL and coding style – you can choose how to format your T-SQL with a huge set of options (uppercase/lowercase, joins, aliases, indentation and so on)
- tab coloring (experimental) – your tab will change color based on environment. Actually this is simpler than the window connection coloring by SSMSToolsPack, but more useful for me. I suggest the SSMSToolsPack one if you need more customizations.
- point to synonyms (experimental) – when autocompletes, the plugin suggests and inspects also the synonyms.
- enhanced intellisense – your autocomplete experience will be improved a lot. You can also go to a definition/summary of an object in a popup (without changing tabs) and pick the columns in case of tables.
- support for azure metadata (coming soon) – all the features above, except the format and coding style) also for SQL Database on Windows Azure
Last but not least, SSMSBoost
- connection management
- locate object
- go to definition
- template scripter
- grid management