SSMSBoost- SQL Server Management Studio
add-in packed with useful tools for daily tasks

SSMSBoost add-in for SQL Server Management Studio


Microsoft SQL Server is shipped with powerful, stable and predictable working environment - SSMS. So, why invent new editors and environments ?
SSMSBoost enhances SQL Server Management Studio and adds features like export to excel, results grid search, sessions history, destructive DML guard and many other. The main goal of the project is to speed-up your daily tasks as DBA, SQL developer or data miner, additionally protecting you from occasional data or code loss.
Shortly after the installation you will realize that plug-in saves you hundreds of mouse-clicks and key strokes every day !

SQL Server Management Studio versions supported: 2008, 2008/R2, 2012, 2014, 2016, 2017
Licensing options: after 30 day trial period register and get free community license or buy the professional version.
Versions comparison page gives you a short overview about the differences between both versions.

SSMSBoost was released to the public in 2012 and was adopted since then by more than 40 000 registered users from more than 15 000 companies around the world. Just to mention some of them:
SSMSBoost got bronze SQL Server Pro award



Features, added by SSMSBoost to SQL Server Management Studio

Preferred connections: "remember" favorite servers/databases

If you have to deal with several servers on daily basis - this functionality is for you.
Preferred connections allow you to remember your favorite servers/databases and pre-configure several options. Connections can be managed in SSMSBoost Settings->Preferred connections
Preferred connections list in SSMS with SSMSBoost add-in

Following options can be defined:
  • Connection alias: sometimes server names are too long and are difficult to memorize, like "customerserver823127.hosteddomainsample.com". In this case you can define display name, like
    customerserver823127.hosteddomainsample.com-> DEVELOPMENT
    customerserver823555.hosteddomainsample.com-> PRODUCTION
  • Additional connection Parameters
  • can be specified and they will be remembered forever. (This is a known issue with SSMS, that connection parameters are not remembered)
  • define if SSMSBoost should connect object explorer on start-up
  • define if SSMSBoost should open empty script window on start-up
  • Custom status bar color. It will help you to distinguish between development (=green) and production databases (=red) quickly. If you define color for preferred connection, where no database is specified, this color will be applied whenever any database from that server is active.
    SSMSBoost tracks connection changes and re-picks correct color on every change.
    Define custom colors for connections in SSMS with SSMSBoost add-in

  • 'Important DB Alert' helps you to protect your production environments: as soon as you change connection to the database that has this option turned on, a warning Tooltip will appear (text, color and position are customizable). You can use following replacement patterns: {@Server}, {@Database}, {@User}, \r, \n, \t.
    Note, that Tooltip location can be defined under "Important DB Alerts" page in SSMSBoost Settings. Below you can see how does alert look like:
    Important database alert in SSMS with SSMSBoost add-in

    This feature can protect you from occasional data modifications in live environments and can actually save you time or even your job ! :)
  • You can quickly add database displayed in Object Explorer to preferred connections by right-clicking on it's node and selecting "Add to preferred connections"
Once you have defined the list of your preferred connections, they will be displayed in Quick connection switch drop-down on the toolbar, which allows you to switch connections instantly.

Note, that in Free Community Edition the number of preferred connections is limited by 2.

Quick Connection Switch

Quick Connection Switch drop-down on the toolbar combines 3 useful features originally missing in SSMS:
Quick connection switching in SSMS with SSMSBoost add-in
  • Allows switching between Preferred connections
  • Keeps track of recent connections
  • Shows all or ACCESSIBLE-only local databases
If SSMS starts with empty environment you can choose any connection from Quick Connection switch drop-down to create an empty document with appropriate connection.
You will find fine-tuning settings of quick connection switch drop-down under SSMSBoost Settings->Preferred Connections


Connection Coloring

Native Sql Server Management Studio connection dialog allows you to choose the color of the status bar, when initiating new connecting to the database, however, this color remains permanent even if your connection changes. SSMSBoost solves this problem: when adding Preferred Connection you can specify an appropriate color for SERVER or SERVER/DATABASE. SSMSBoost will tracks then connection changes and applies most specific matching color to the status bar. Most common usage can be "Red" status bar for your live system and "Green" for test database.

Define custom colors for connections in SSMS with SSMSBoost add-in

Important Database alert

Use this feature for very important connections additionally to Connection coloring. When adding Preferred Connection tick "Important DB Alert", specify alert message and color. Whenever current connection changes to this particular connection a floating pop-up will remind you that you are working with important database.

Important db alert

Auto-connect to databases at startup

This is one of the options of Preferred Connections: you can start SSMS with Object Explorer connected to your favorite databases. Just tick this option for the desired preferred connection in settings.

Auto-open new query window(s) at startup

This is one of the options of Preferred Connections: SSMSBoost can create empty query windows connected to your favorite databases on startup. Just tick this option for the desired preferred connection in settings.

Set Connection from Object Explorer

If you wish to switch connection of current SQL Editor window to any database displayed in Object Explorer - just right-click it in Object Explorer and choose "Set as active connection" menu item.
Script Object feature in SSMS

Copy full object name from Object Explorer

This feeling, when you see object in Object Explorer, but cannot copy it's fully-qualified name !...
Well, no more! Right click the object and select "Copy Full Name to Clipboard". SSMSBoost will copy object's name to clipboard (including database and schema).

copy full object name from object explorer

Script Object from SQL Editor: "Go To Definition" for SQL Objects

Script object located at cursor position directly from SQL Editor.
Keyboard Shortcut: [F2]

Script Object feature in SSMS with SSMSBoost add-in SQL Server Management Studio currently lacks a feature present in other Visual Studio Editors - "go to definition".
SSMSBoost plug-in solves this problem by adding a tool what you need: Script object located at the cursor position to a new window.

You can invoke this feature by
  • pressing Keyboard Shortcut [F2]
  • right-clicking the identifier and selecting "Script object" from the context menu

SSMSBoost performs search for valid identifiers at cursor location and allows you to select, which one you want to script. If you select part of the identifier - SSMSBoost will perform no search and will use selected text as object identifier.
If you would like to change the default Keyboard Shortcut for the "Script Object" feature you can do that using Shortcuts Editor feature of SSMSBoost (required only in SSMS 2008 as far as SSMS 2012 has built-in shortcuts editor).

By default objects will be scripted as CREATE. If you want to generate ALTER scripts you can use "Script as ALTER" command also provided by our add-in. Use Extras->Settings->"Shortcuts & Macros" to redefine F2 shortcut to this command.

Additional Scripting options for SQL objects scripting

SSMS shows not all scripting options by default. For SSMSBoost operations we provide you all internal scripting options structure available in SSMS. Be careful - some of them might not work, some of them can stop scripting option working. For experts use.
Additional Scripting options

Edit Top N Table Rows

SQL Server Management Studio allows to right-click table in Object Explorer and select "Edit top rows". Now you can do the same, right-clicking table name directly in SQL Editor. Number of Top rows is customize in settings.

Locate Object in Object Explorer focused in SQL Editor

Locate object in Object Explorer located at cursor position directly from SQL Editor.
Keyboard Shortcut: [Ctrl-F2]

Locate objects in SSMS object explorer with SSMSBoost add-in

An often need is to know more information about object under the cursor: its columns, parameters (for function or procedure), other properties. If a database has hundreds of objects, locating an object in the Object Explorer can take some time. SSMSBoost allows to locate object in seconds! Just place the cursor on the identifier and
  • press Keyboard Shortcut [Ctrl-F2]
  • right-click the identifier and select "Locate object" from the context menu

SSMSBoost performs search for valid identifiers at cursor location and allows you to select, which one you want to locate. If you select part of the identifier - SSMSBoost will perform no search and will use selected text as object identifier.
Object fill be focused in Object Explorer and it's node will be expanded. So that you can easily access it's properties and, for example, drag-n-drop parameters of stored procedure into SQL Editor window. If you want to change the default Keyboard Shortcut of "Locate object" feature you can do that using other feature of SSMSBoost - Shortcuts editor (needed only in SSMS 2008, as far as SSMS 2012 and later versions finally have built-in shortcuts editor)


Track current database

When working with lots of opened scripts connected to different servers/databases, sometimes it is useful to locate current database in Object Explorer.
Just hit the button on the toolbar and current Server/Database will be focused in Object Explorer.
This feature can be used as single-time action or you can switch "track current database permanently", which will always focus current database whenever you change connection of your script or switch between scripts. Generally - it is something like "synchronize table of contents" function in windows help, or like "synchronize solution explorer" in Visual Studio.

Track current database in SSMS with SSMSBoost add-in

Autoreplacements

Auto replacements or "snippets" allow you to write frequently used SQL commands more quickly. Type "sel" and press space, enter or tab (configurable in Settings) - and it will be replaced by "select * from". "upd" will be replaced by "update # set where". "#" defines, where cursor will be placed after replacement is done. (This symbol is customizable per Autoreplacement). SSMSBoost Autoreplacements have following features, improving similar functionality of SSMS:
  • Tokens can be case-sensitive
  • It is possible to specify final cursor location, after autoreplacement has triggered
  • You can use standard SSMS parameters like <name, type, default value> in Autoreplacements. SSMSBoost detects these parameters and automatically shows Parameters replacement dialog, saving you additional clicks/keystrokes.
  • Following parameters can be used in Autoreplacements: {User}, {Server}, {Database}, {Connection}, {Timestamp} , {Timestamp:Format} (.Net datetime format). These parameters will be replaced with actual information after Autoreplacement has been triggered. For example you can create an Autoreplacement to place a Username/Timestamp comment into source code.
You can easily add your own Auto-replacements

How it works - sample for "sel" token
Autoreplacement feature in SSMS (select) with SSMSBoost add-in

How it works - sample for "upd" token
Autoreplacement feature in SSMS (update) with SSMSBoost add-in

Custom SSMS window title (caption)

SSMS caption in title bar with SSMSBoost add-in Originally, SSMS displays static caption "Microsoft SQL Server Management Studio". If you have several instances open and try to switch between them using Alt-Tab or task-bar, you will not be able to see the difference between instances. SSMSBoost add-in allows to re-define the caption of the window, so that you will be able to see current document name and connection information. You can also define your own pattern to be used for window title.
Available parameters: @FileName, @Server, @Database, @User. Parameters can be used within main pattern as well as in sub-patterns {ProjectName} and {Connection}. {ProjectName} pattern will be inserted only if SSMS project is loaded. {Connection} pattern will be inserted only if connection is open.
Picture on the right shows you how different SSMS instances will be displayed on the task bar. Pictures below show how caption of SSMS looks like and how windows appear in Aero Peek.


Alternative SSMS window caption: SSMSBoost add-in

Aero Peek with modified SSMS caption
Alternative SSMS window caption with aero peek: SSMSBoost add-in


Advanced objects search

Using SSMSBoost advanced objects search you can search for objects across several databases and servers. When searching, you can use ? and * wildcards.
Clicking on search result unlocks several functions:
  • Script selected object - will open it's SQL source in new window
  • Locate object - will navigate Object Explorer to object's node
  • Copy selected identifier into current window - will insert selected objects into current cursor position

Advanced objects search in SSMS with SSMSBoost add-in

Jump between matching BEGIN/END tokens

This functionality allows to Jump to BEGIN or END of the current block or jumping between corresponding BEGIN/END tokens. To activate the function, select corresponding command in SQL Editor context menu.
Note, that you can also use universal "JUMP" shortcuts Ctrl+Shift-Up Arrow to navigate "UP" (to BEGIN) or Ctrl+Shift-Down Arrow to navigate "Down" (to END). These shortcuts are shared with Jump between COLUMN/VALUE within INSERT statement functionality and act depending on current cursor placement.

jump between column and value in insert statement

Jump between COLUMN/VALUE within INSERT statement

When editing large INSERT statements with big number of involved columns, it is useful to know to corresponding COLUMN of currently edited VALUE or, vise-versa: sometimes you want to locate corresponding VALUE within values list for current COLUMN. Here is the solution: use "Jump between COLUMN and VALUE" command in SQL Editor context menu.
Note, that you can also use universal "JUMP" shortcuts Ctrl+Shift-Up Arrow to navigate "UP" (from VALUE to COLUMN) or Ctrl+Shift-Down Arrow to navigate "Down" (from COLUMN to VALUE). These shortcuts are shared with GoTo BEGIN/END functionality and act depending on current cursor placement.

jump between column and value in insert statement

Comment/Uncomment selection

SSMS has standard feature allowing to comment selected text, however, it uses "--" syntax, making impossible to insert comments within the line.
SSMSBoost has added smart /*comment selection*/ feature, which does exactly what developers expect it to do: it puts /**/ marks around the selected text:
Comment selection in SSMS with SSMSBoost add-in

Additionally, this feature can be used to remove comments, when selection exactly matches comment bounds (works with both /**/ and -- syntax):
Comment selection in SSMS with SSMSBoost add-in

Regions in SQL Server Management Studio !

SSMSBoost adds the possibility to use common regions syntax
--#region [Name]
--#endregion
in SQL Editor. Regions will be recognized and processed by our add-in and expand/collapse symbols will be added near region head.
Regions functionality is available through SSMSBoost toolbar->Regions
Following commands are available
  • Create region creates unnamed region. If you run it when some part of code is selected - it will be wrapped into newly created region.
  • Create named region creates region, asking for name. If you run it when some part of code is selected - it will be wrapped into newly created region.
    SSMSBoost regions in SSMS
  • Reparse/Refresh regions forces re-processing of current document. All regions will be newly created. This can be necessary, if you are doing massive changes to the document. Regions are parsed automatically when script is being opened in editor.
Make sure you check SSMSBoost Settings->Regions for fine-tuning options. For example, you can customize region start and end tokens.

Format SQL Code

SSMSBoost allows to format SQL Code using two different formatting engines.

SSMSBoost formatting engine

SSMSBoost formatting engine offers a wide variety of options. The best way to learn it is by using Built-In Template editor: it will apply changes to the formatting template while you edit it.

To create/edit formatting template:
  • Open one of your SQL scripts - it will be used to display formatting result while you change options
  • Run SSMSBoost menu->Query->SQL Format Styles template editor
  • Change template options and they will be immediately applied to your code.
  • Hit "Save changes" when you are done

Now you have created your own formatting template, you can choose it on the toolbar in the formatting drop-down and hit "Format" anytime to format your SQL code.
Under SSMSBoost settings->Formatting you can manage formatting templates as well, particularly - you can import/export them, to share templates with your colleagues.

SSMSBoost code formatting in SSMS

"Poor Man's T-SQL Formatter"

This formatter is added as an external tool, which SSMSBoost calls in the background. The project is called "Poor Man's T-SQL Formatter" and is displayed as "Old styled formatting" in formatting drop-down. Project author Tao Klerk did not update it for several years but many users were asking if it is possible to use this formatter under latest SSMS versions, so we decided to link it into our add-in.
You can configure formatting options under SSMSBoost settings->Formatting->Old fashioned formatting.

Results Grid Scripter (Flexible Template-based Scripting)

Results Grid Scripter allows to script data using flexible scripting templates to clipboard or to disk.
For example, to export & open contents of results grid in Excel you need a few clicks (also see picture below):
  • Right click results grid
  • Select "Script data as" command
  • Select "Excel (MS XML Spreadsheet)"
  • Choose between "All grids", "Current grid" or "Selection"
  • Choose "To Disk"
  • After scripting is done click displayed link to open created document in Excel (this step is not displayed on the picture)

Additional Scripting options

Existing templates can be fully customized and new templates can be added under:
Extras->Settings->"Results Grid:Scripter Templates".
Read template properties description in configuration dialog for more information about specific properties.
Use existing templates as samples to experiment and create your own templates.
Post your templates at our forum if you have created useful ones and want to share them with others.

Results grid scripter feature is shipped with following predefined templates:

  • Property:Value - copies results as ColumnName:Value
  • WHERE Column=Value - selected values are copied as 'WHERE (ColumnName=Value) OR ...' allowing to generate WHERE filters quickly by selecting required column values
  • WHERE ColumnName IN (value1,value2..) - generates WHERE ColumnName in (Value1,..) filter based on selected values
  • Excel (MS XML Spreadsheet) - saves results in MS XML Spreadsheet format, that can be easily opened in MS Excel.
    Values preserve their data types: If you export telephone numbers to Excel, they will not be treated as formulas anymore !
  • INSERT INTO #tmpres EXEC sp_storedProc - quickly generates temporary table declaration, that can be used to insert execution results of stored procedure.
  • SELECT - scripts results as SELECT VALUES statement. It is some kind of table data exported as script. Datatypes are preserved.
  • XML - results are saved as pure XML document
  • HTML table - results are saved as HTML Table

It is reasonable to try each provided template at least once to understand it's purpose better.


Copy Results Grid data to Excel (as xml Spreadsheet)

Copying data from Results grid to Excel via built-in Ctrl-C command results in loss of data type information. Excel needs to analyze inserted data and to "guess" it's type and regional settings.
SSMSBoost allows you to copy Results Grid data in XML Spreadsheet format, preserving data type and precision information. Strings remain Strings, DateTime remains DateTime and Numeric and Money data keep their precision and scale.
If you like this feature, make sure you read about Results Grid Scripting feature: it is much more flexible and customizable and designed to output really bit amounts of data.

Copy Results Grid data to Excel

Find in Results Grid

Find in Results Grid allows you to search for values in current grid, all grids or selected block of data.
  • Search using wildcards
  • Search option allow to define search range, search tolerance and search order
  • Double-click search result to navigate to corresponding cell
  • Search results offer a wide variety of options: copy cell data, preview data, focus matched cell...
  • You can always press Ctrl-F in SSMS Results Grid to start Data/Column search. Both windows have a quick switch button on the bottom.
  • Quickly switch to Find column in Results Grid dialog, using button at the bottom
Pictures below show initial view and multiple results representation.
You make SSMSBoost select found cells in Results Grid to script them or perform subsequent search within selection.

Find in results grid: ssms plug-in

Find in results grid: ssms plug-in


Find column in Results Grid


SSMSBoost offers search for columns in all currently displayed Results Grids (there can be several result sets returned by query).
  • Search using wildcards
  • Double-click the column to focus it in the corresponding grid
  • Select column name in results and press CTRL-C to copy it's name
  • Column data type, precision and NULLability are displayed in results set. Yes - now you know exact data types of the result set.
  • Quickly switch to Find in Results Grid dialog, using button at the bottom
  • You can always press Ctrl-F in SSMS Results Grid to start Data/Column search. Both windows have a quick switch button on the bottom.

Note, that this is dockable windows pane, that you can doc exactly as other SSMS panes and it will remember it's location. On first use you have to find a suitable place for this useful window in your SSMS environment.

Copy Results Grid Headers (Column Names)

SSMS Results Grid copy headers You have some results set in Results Grid and want to copy some of Column names ?
Select cells from columns that you want to copy (Ctrl-Click) and choose "Copy selected Headers" from Results Grid context menu.
Column names will be copied to clipboard. You can also run "Copy all Headers" command, if you want to have all headers.
Note: it does not matter, cells of which row do you select. We just need to know the column.

Copy cell data from Results Grid 1:1 (preserving line breaks)

SSMS Results Grid copy original cell contents If SQL Query outputs long strings of data (for example from TEXT, NTEXT, VARCHAR or NVARCHAR fields) SQL Server Management Studio truncates them when outputting to Results Grid. Truncated string will be also copied to clipboard, if you use native copy command.

SSMSBoost introduces "Copy current cell 1:1" command: select cell you want to view/copy, open context menu -> "Copy current cell 1:1" and full data will be copied to clipboard - all bytes and without any modifications.

Copy as SQL values List

You have some dataset in Results Grid and want to add a filter to your query, based on ID's from several rows. If you just select and copy them, every value will be on new line, and String and DateTime values will not be in "ready to use" format. SSMSBoost allows to speed-up the process: just select "Copy as SQL Values list" from context menus and you get a ready-to-use comma-separated list of values, that you can paste into your "WHERE" statement.
Copy selected values as SQL values list

SSMS Results Grid data Visualizers

Feature allows to export & view files or some big amounts of text or XML data from tables (like files from document storage of sharepoint services). Required data should be simply output to Results Grid. By right-clicking the cell with required value and selecting "Visualize As->.." you can tell to save data to file with predefined name and open it with custom or default application. No matter that SSMS truncates long data from VARBINARY/VARCHAR fields when displaying them in Results Grid: SSMSBoost works with internal storage of SSMS and extracts complete cell value. Below you can see how a picture from [LargePhoto] field of [Production].[ProductPhoto] table from [AdventureWorks] database is being visualized:

SSMS Results Grid Visualizers

There is actually no magic: in Settings dialog you can configure list of Visualizers. You define Visualizer name, file extension for saving data and also an application, used to open saved files. If you leave Application path empty SSMSBoost will perform "Shell.Open" - forcing windows to open file using associated application.
There is a trick for using this feature: if your field keeps images of different types like .bmp, .png, .jpg, etc., then you do not have to define own visualizer per type. Just define visualizer "Picture" and extension to save ".pic". Then associate in Windows .pic with windows picture viewer. Picture viewer will analyze contents of .pic and display image correctly, no matter if it is .jpg or .bmp. This trick might also work with other picture viewers or other programs.

Recent Connections - connections history in SSMS

SSMSBoost keeps track of connection history and allows to access it in 2 ways:
  • Using Quick connection switch drop-down on the toolbar:

    Quick connection switching in SSMS with SSMSBoost add-in
  • Using Recent->Pick recent connection command on the toolbar, which shows list of recent connections. Using this list, you can just connect to any of listed connections or promote recent connection to Preferred Connection. If you tick "freeze" option for any connection it will remain in list for unlimited time

    Quick connection switching in SSMS with SSMSBoost add-in

Make sure you check SSMSBoost Settings->Recent Connections for fine-tuning options.

Recent Tabs

Recent Tabs feature keeps track of currently opened documents. SSMSBoost remembers document names and their connections. If documents are new and were not saved (Query1.sql) they will be still remembered and unsaved content will be saved, coupled with SQL Editor Contents History feature.
You can use these feature by using one of commands:
  • Restore last closed tab simply restoring last close tab, including it's connection without any further questions
  • Pick recent tab shows Recent Tabs dialog, allowing you to choose one of the Tabs from the history:
    SSMSBoost Recent tabs
    "Freeze" option allows you to force persistence of the tab in the recent tabs, until you manually delete it.
Make sure you check SSMSBoost Settings->Recent Tabs for fine-tuning options.

Recent Sessions / Restore last session

SSMSBoost keeps a track of your working environment and remembers which document were opened. In case of unexpected reboot or crash you have the possibility to restore last session or restore one of previous sessions completely or partially. This includes restoring all saved (with filename) and unsaved (QueryN.sql) documents, including their connections.
You will wind Restore last session and Pick recent session commands on the SSMSBoost toolbar under Recent menu.
Here is how Pick recent session dialog looks like:

SSMSBoost recent sessions

Make sure you check SSMSBoost Settings->Recent Tabs for fine-tuning options. These settings affect not only Sessions, but also Recent tabs functionality.

SQL Editor contents history: Infinite UNDO possibility.

SSMSBoost regularly makes backup snapshots of currently opened document to disk, providing you with the possibility to get back to older versions of your work in future. It is not only "backup copy", it is modification history (sometimes you want to restore some specific version of your script).
The feature is disk-size optimized: No data will be written if there were no changes since the last snapshot.
History is saved on disk in simple text format, however, we have added advanced search functionality, that allows you to search for previous versions of current document right from SSMS environment. Search results can be compared to currently opened document with your favorite FileDiff tool, like WinMerge.

SSMS editor history search

Make sure you check Settings on this feature, to perform fine-tuning to your needs:

SSMS editor history settings

Executed SQL Statements History

SSMSBoost saves executed statements along with information about execution results to local folder. This feature allows you to find queries that you run in the past and reuse them again. This can help you to recover valuable scripts or analyze your actions on specific database. You should be familiar with those moments, when your customer asks for "same report but for last year" just after you have closed your temporary script without saving it... Well - now you can recover your work and re-use it.

This feature can be configured in SSMSBoost Settings->Script Execution History.
You can define storage path, file naming template + a couple of other fine-tuning options.
Use History->Find in Execution History to search through archived statements.

Workspaces

Workspaces solve the problem, when you have to open some set of files connected to individual databases. If you have changing tasks/customers, it might be reasonable to create own Workspace per customer, so it will be easy to load all scripts connected to right databases at right time. You can see Workspaces as Recent Sessions, but with the possibility to give a Name to the Session and save it for a long time.
You will find Workspaces under SSMSBoost Menu->Workspaces, as well on the SSMSBoost toolbar.
These are main features of Workspaces:
  • Named set of documents
  • Own pre-set connection per document


Workspaces in SSMS


Vertical Guidelines

Vertical Guidelines is a useful feature that helps to stay in control of maximum "reasonable" width of your source code. You can configure one or several lines positions and define their color. You can also deactivate this feature, if you are used to clean SQL Editor.

Vertical Guidelines in SQL Server Management Studio

Fatal Actions Guard

There is always a possibility to accidentally execute UPDATE or DELETE statement without WHERE clause, ruining the data. Yes, in theory, it should never happen, backups should exist, triggers and foreign keys should stop deadly modification, but in reality additional protection can save you hours or work, or, maybe even your job ;)
Fatal Actions Guard parses scripts executed in SSMS and checks for potentially dangerous statements, like DELETE or UPDATE with missing WHERE clause, or usage or TRUNCATE statement, which bypasses delete triggers. To get an overview about the feature, open SSMSBoost settings and search for "Fatal actions guard".
It is possible to configure what will happen if critical statements are found: should execution be stopped or should user be able to continue, confirming his intentions. You can also exclude particular tables from this check ("Exclude table names"). Further, you can enter custom tokens, that will cause following actions, if found:
  • "ask" token - will force SSMSBoost to ask user for execution confirmation. For example, if you add "#checklater" token in "ask" tokens list and will start adding it to your scripts, SSMSBoost will keep asking you for execution confirmation, until you delete all these tokens. This can be practical, if you are working on some script and want to mark some critical places, that should be verified.
  • "prohibit" token - pretty the same logic as "ask" token, only SSMSBoost will not allow you to run the script at all. You can add it to script files, that are not intended for blind execution. Sometimes system administrators collect frequently used commands in one script, and it can be fatal if someone just executes that file.
  • "magic unblocking" tokens allow you to disable execution guard for some particular script. For example, if you often use "full wipe" script to initialize your test database and use TRUNCATES there, just add #breakingbad in settings and then add this token as a comment to your script and. Execution Guard will be disabled for that particular file.


Fatal Actions Guard

Run selected script as Database Query (.dqy) in Excel

Microsoft Excel has a perfect possibility to run direct database queries and use results for further processing: as simple data table, as base for Pivot tables and Charts. However, there are some clicks to do, before you get your query executed in Excel.
SSMSBoost adds 1-click functionality to complete this:
  • Select query, that you want to export for execution in Excel
  • Execute SSMSBoost Menu->Query->Run in MS Excel command
  • SSMSBoost will create Database Query (.dqy) file, passing selected SQL Statement and current connection information
  • File is now passed to Excel for further processing. It might be necessary to adjust security settings in Excel to allow processing of ".dqy" files
Note: Excel has some rules, that your query must fulfill. You will find detailed documentation on the Internet, but to keep it short: it must be single SQL query, returning one dataset.

IMPORTANT: Make sure you check SSMSBoost Settings->Database Query (.dqy) for fine-tuning options. For SQL Server native authentication SSMSBoost can export connection password in clear text form, which might be a big problem, if you are going to give .dqy file to other persons. And yes - this is a workaround how to restore forgotten SQL Password for some connection, that is still present in your recent connections list.

SSMSBoost database query .dqy

Intellisense Completion Fix

SSMS 2012 always sets "Intellisense autocompletion" to "On" whenever you open a new query window. This is unfixed bug confirmed by Microsoft. We have added the possibility to define global default setting for IntelliSense behavior. See Settings->Advanced "Intellisense completion mode" option.

Results Grid Aggregates

Excel has a perfect function, which allow users to select several cells and see their SUM in the status bar. Well, SSMSBoost adds even more advanced Aggregates functionality to Results Grid:
All you need to do is to select a range of cells. SSMSBoost activates Aggregates windows and starts displaying aggregates. By clicking checkboxes below the calculated results you can select which aggregates to calculate: SUM, MIN, MAX, COUNT, COUNT NULLS, DISTINCT COUNT, AVG.
Please note, that some aggregates are data type-specific and will not be calculated (like there is no SUM for Strings).
Aggregates window, like most of other SSMSBoost windows is dockable floating pane, which can be docked in SSMS environment like any other window. You have to size/dock it when it appears for the first time.
There are some fine-tuning options available under SSMSBoost Settings->Grid Aggregates. Make sure you check them and choose best settings for your usage case.

SSMS results grid aggregates

Query Post-Execution handlers

In current version we have implemented only one post-execution handler: an Info message is shown, when query completes the execution. This is useful particularly when you execute long-running queries and switch to other window within SSMS or even to other application.
If query execution completes while you are working in another application, a Windows notification message in system tray is shown:

SSMS query execution complete popup

If execution completes while you are still in SSMS, a pop-up is shown within the SSMS user interface:

SSMS query execution complete popup

You can customize the contents and behavior of the Info-popup in SSMSBoost Settings->Query Post-Execution handlers.

P.S. We will add more post execution handlers later. Please send us your ideas what you need. This can be something like "send an e-mail after query completes" or something else. Send your ideas, sample scripts and proposals.

Transactions Guard

Whenever execution of last SQL batch leaves open transactions, SSMSBoost will show floating information window with the reminder.
There will be one reminder window shown per SQL Editor tab. Reminder can be closed or will close itself when @TRANCOUNT reaches 0.
Feature re-uses native SSMS functionality, that checks open transactions whenever you try to close SQL Editor window with open transactions. Due to this fact we do not show number of open transactions (native function returns only "yes" or "no").
You can always check number of open transactions using SELECT @TRANCOUNT statement.
You can disable this functionality in SSMSBoost settings->Transactions guard

SSMSBoost transactions guard

Create simple macros in SSMS re-using existing commands

SSMSBoost add-in allows you to combine existing SSMS commands (and also commands of other add-ins) and create this way simple macros. The best example are 2 macros that we have already created for you:

Execute to Grid - executes statements and outputs results to Grid pane
Execute to Text - executes statements and outputs results to Text pane

For example, Execute to Grid is created as a sequence of 2 existing SSMS commands: Query.ResultsToGrid and Query.Execute. When macro is created, you are free to assign shortcuts and place the button on the toolbar to speed up the access to the functionality.
If you are looking for the easy to read list of all commands, available in SSMS, use our SSMS Commands Dump feature.
For your reference we have listed all SSMSBoost commands on the separate Settings page named "Commands". Along all available commands you see assigned shortcuts and can easily redefine them.
Be creative, help yourself!

Simple macros in SSMS with SSMSBoost add-in

Manage keyboard shortcuts

Note: this functionality is present in SSMS Versions 2008-2014 only.

Users of SSMS 2016 and later versions do not need this feature and can use internal shortcuts editor connected with our Macros functionality. Additionally, in SSMS Versions starting from 2016, SSMSBoost displays full list of own commands under Settings->Commands, displaying assigned shortcuts and allowing to set new ones.

In SSMSBoost for SSMS versions 2008-2014 Shortcuts management is merged with Macros functionality, which allows you to create sequences of commands with assigned shortcut. If you want to assign a shortcut to a single command (SSMSBoost or any other command), simply create a macro containing single command and assign it a shortcut.

Shortcuts editor in SSMS with SSMSBoost add-in

SSMS Commands dump

SSMS environment has a technical name for every function/command it offers on the toolbar and in menus. Additionally, all installed add-ins and extensions register their functions in SSMS environment as well. Using our commands dump you can get a list of all functions, registered in your SSMS instance and, for example, perform a quick search for functionality, that you are interested in. This saves a lot of time if you are looking for some specific functionality. Additionally, SSMSBoost outputs associated shortcuts, if associated.
You will find this command under SSMSBoost Menu->Tools->Dump SSMS Commands

Update Checker

You can stay notified about new product updates.
Open SSMSBoost Settings->Update checker and configure your preferences.

Miss your favorite feature ?


If you would like to see your feature proposal implemented in our add-in, please do not hesitate
to contact us via e-mail: (5)upp(0)rt(at)(5)(5)m(5)b(0)(0)st(dot)c(0)m or using our Forum.
We are constantly improving our SSMS plug-in and a big part of the functionality is based on user proposals and feedback that we receive.

Sincerely yours,
SSMSBoost team.