Batch Data Diff allows to compare data for multiple tables and views. This tool can be opened using 'Batch data diff (Ctrl+Shift+B)' toolbar button:
With click on any calculated count you can drill-down to data diff to check these records. For views new and changed records count can not be calculated since they do not have primary keys and therefore it is not possible to detect whether the record was added or changed.
With 'Query result diff (Ctrl+Shift+Q)' you can compare arbitrary query results (note that application zoom was applied to keep control layout for little screenshot size):
This can be convenient if you want to specify some column or row filter. You can split this window to specify two queries and compare their result, in this case you can also run both queries against the same database.
You can run number of data retreival statements of stored procedure call that would return multiple resultsets. After execution you can scroll thru these resultsets using resultset counter.
Note that query results can not be merged.
With 'Custom data diff (Ctrl+Shift+C)' you can compare any tables and views with ability to specify custom field mapping. At least one field mapping item must be defined with mapping type 'Key':
This dialog also can be opened from the regular data diff window by 'Field mapping' link and from query result diff in 'customize field mapping' mode.
Export to Excel generates Excel reports for object list, data diff, batch data diff, query result diff and table structure diff. Click the 'Export to Excel (Ctrl+Shift+E)' toolbar button to export data grid from the currently opened tab:
For the data grids that allow record/object selection (such as table diff view), only selected records will be exported, if any records were selected.
Diff profile contains list of preset custom mappings and queries. For example, some team works on two applications - app1 and app2, each has its own database. Some table names (such as User) are pretty common - so there is a big chance that we'll get different DBs having the same table name but in each DB this table has a different set of columns and/or keys. Table User in app1 may have no primary key and we want to compare its data by email, but never use email as a key for app2 DB instances. This can be achieved using diff profiles. We create a new diff profile for app1, specify custom mapping for table User and save this mapping in that diff profile. Now if we have app1 diff profile loaded, when we compare any pair of app1 DB instances, application will use Email as a key.
The next diff profile feature is an ability to save your ad-hoc queries from Query result diff tab. So next time you want to run the same query again - you don't need to type it one more time and specify mappings.
As you could notice on the Overview page - object list, data diff and text diff views provide the following additional diff functionality:
MssqlMerge Free provides basic data diff and merge facilities with the following limitations:
You can compare view results the same way as for tables using 'Compare data' and buttons. Click on these buttons will bring up a 'Define query key fields' dialog with the list of common fields. Select number of fields that can uniquely identify query row to detect new and changed records. When you click OK, MssqlMerge Pro checks that chosen fields match this criteria, otherwise you will get a warning and will have to select other fields.
You can open projects in MssqlMerge Pro using command line arguments. For this you need to same your database connectiviry settings to *.msdbs files, this should be done from 'Open databases..' dialog. The format of command line arguments is
mssqlmerge.exe left_msdbs_path right_msdbs_path
In Pro you can compare user-defined table types, and you can both compare and merge table default constraints, check constraints, unique constraints, indexes, foreign keys and triggers.