As of February 20, 2019, MssqlMerge product page has been moved to the new location:
This site will keep to store home page and downloads, but all links inside will redirect you to the new location.
Sorry for inconvenience.

What is MssqlMerge?

MssqlMerge is an easy to use diff & merge tool for Microsoft SQL Server databases. This tool allows to compare and import/export database objects and data between two databases. Supported SQL Server versions are 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 and SQL Azure. MssqlMerge can run in two modes - basic free version described below on this page, and paid Pro mode that provides extended functionality and overcomes limitations of the free version.

Free version allows to compare table definitions, diff and merge view, functions and stored procedures. It also provides basic data diff and merge facilities, allowing to compare table contents, merge the whole records or only required columns for chosen records.

MssqlMerge Pro has a number of significant functional improvements, such as batch data diff, ability to compare and merge foreign keys, triggers, check&default constraints and more. In addition it has a lot of small nice refinements that will make your work much more productive.

Here is the quick video introduction to the MssqlMerge - by example of the Pro, however, most of the core features described in this video are available in the Free version::

How to use it?

Download installation package, install and run:

Click on toolbar "Open Database(s)" button or "Open Database" links to connect to required DBs:

You will get some kind of summary about database objects:

Using "total/new/changed" links you can navigate to required object type, for example to Stored procedures:

On this screen using toolbar, you can:
- observe all objects, or only new, changed, or both new and changed,
- select multiple objects for further merge action, or you can select each line separately without toolbar,
- "Merge to left"/"Merge to right" buttons can be used to export/import selected objects. This action is not available for tables. Merge action will display a confirmation screen with the merge script that is going to be executed:

From the object list you can navigate to some particular object and compare its definition: 

MssqlMerge also allows to diff and merge table data. Navigating from Project -> Tables you will see  button - "Сompare data (all records)" for each table, which will open table diff window. If you have a lot of unchanged records and you need only to review changed - you can use  button - "Compare data (only new or changed records)". The same way as for objects list you can switch to all/new/changed records. Table diff window will indicate new/missed/changed records and missed fields, for changed records it will highlight fields with updated values:

Here you can merge data from one file to another. Mark records and fields that needs to be merged and use toolbar merge buttons. Toolbar selection buttons can be used for batch selection update. Merge action will display a confirmation screen with the merge script that is going to be executed.

Another useful feature is search for text across all project object definitions (but not across the data). This can be very helpful for example if you want to find all references to some particular field or table in all views, functions and stored procedures:

System requirements:

Microsoft .NET Framework 4 Client Profile (required only for Windows XP/Vista/7 and most likely already installed with Windows Update, not required for Windows 8/8.1/10)  


Author will be very happy if someone will find this program helpful. If you have any suggestions or bug reports, please write to