KS DB Merge Tools logo KS DB Merge Tools
Documentation
MssqlMerge logo for SQL Server
aka MssqlMerge
KS DB Merge Tools for Oracle logo
KS DB Merge Tools for MySQL logo
KS DB Merge Tools for PostgreSQL logo
KS DB Merge Tools for SQLite logo
AccdbMerge logo
KS DB Merge Tools for Cross-DBMS logo

Settings Dialog

This dialog is used to setup application settings:

for SQL Server, settings dialog

Application settings are organized into tabs and groups with comprehensive descriptions. Below is the content of the dialog with some comments.

Database Open

Object types and filters

Check object types you want to load. Object type dependencies being verified:
- if any of table-dependant objects checked (constraints, indexes, triggers, foreign keys) then tables are loaded
- if any of view-dependant objects checked (view indexes or triggers) then views are loaded
- if any of data-types dependant object checked (tables, table types) then data types are loaded

Object type list columns: Object type, Load, Filter

Constraints, indexes, triggers and foreign keys are loaded only for filtered tables. Filter expression can use 'name' and 'schema' variables, '=' and 'LIKE' operators and can be prefixed with 'NOT'. Here are couple examples of valid filter expressions:
   schema = 'dbo'
   NOT name LIKE 'Legacy%'

This list specifies which object definitions will be loaded and compared. When you open a database, the application reads all chosen object definitions from the database and keeps them in memory. For a large database it takes some time. Or, maybe you're not interested in some changes at all. Using these settings you can specify which objects you need to load. So, by disabling some object types, you can speed up database open process and keep your focus only on objects you need. Please note that if you omit some object type, then this can prevent some further merge actions. For example, stored procedure (SP) can depend on some view. If you need to merge this SP to the other side, then you will have to merge that view first. But if you'll disable views loading, then you will not able to do this and on merge you'll get an error from the database server that referenced view does not exist in the target database.

Database open/reload

If you open new database and have some opened tabs (other than Home tab), application may ask you to close them because these tabs may become outdated. The default option is:
Proceed and close outdated tabs (recommended)
Open new application instance
Confirm these options every time

It is the defaults for the Database reload dialog.

Data Diff

These settings configure the default behaviour of the Data diff tab. String compare options are also related to the Batch data diff and Query result diff tabs.

Paging

Getting data by pages allows to work with large amount of data.
However it may be applied only if both tables have compatible prymary key.
You can specify page size as 0 to disable paging.
Default page size: (value)

Data Merge/Delete

You may select all records on the current data page, but if page size is less than total record count - probably you may want to process the rest of records on other pages. If this setting is enabled, then Data Merge/Delete will process all pages. Otherwise only current page is processed.
Process all pages   ☐ Confirm this every time

If the generated script will contain UPDATE statements, it can include all or only changed column values. In the last case, script will not be generated for unchanged rows.
Update only changed columns   ☐ Confirm this every time

Data Export

Similarly to the data merge, if page size is less than total record count - application may ask you to whether you want to export all data pages or only the current one. Note that if any row is selected on any side, then only selected rows from the current page are exported (even if you select all rows on the current page).
Export all pages
Confirm this every time

String compare options

These options affects batch data diff and the default state of text compare toolbar buttons for data diff. Batch data diff results needs to be re-calculated and any opened data diff tab needs to be refreshed to use updated options.
Case insensitive
Ignore leading and trailing whitespaces
Along with ignoring other whitespace changes, the last option also makes equal NULL and empty string

String compare options defines the default state of the Case insensitive and Ignore leading and trailing whitespaces vertical toolbar action states for the Data diff and Query result diff tabs. They also affect calculation logic for the Batch data diff tab.

Text Diff

This tab has a general note on the top:

For all settings on this tab - databases need to be reloaded to apply updated options.

Text compare options

These options affects not only the default state of text compare toolbar buttons, but they also affects calculation of the changed objects on the Home tab and Object list tabs
Case insensitive
Ignore leading and trailing whitespaces
Ignore ALL whitespaces (within a line)
Ignore empty lines

These options define the default state of Case insensitive, Ignore leading and trailing whitespaces, Ignore all whitespaces and Ignore empty lines vertical toolbar action states for the Text diff tab and affect identification of the object changes in other places.

Object text loading

It may happen that the only difference between two text object definitions is the trailing semicolon.
It does not affect object behavior but makes it shown and counted as changed.
Use this option to ignore the trailing semicolon. Applicable for views, stored procedures, functions and triggers.
Trim trailing semicolon

Table Definitions

This tab has a general note on the top:

For all settings on this tab - databases need to be reloaded to apply updated options.

Table definition compare options

By default, table is considered as changed if it has:
- new/deleted columns,
- changed column data type, nullability, identity or expression,
- changed constraints
In addition, it can be considered as changed if it has changed:
Columns order
Indexes
Triggers
Change tracking optionss
Note that all these options (except column order) affect CREATE TABLE script generation. That script is used to merge the whole table, for text diff preview in the object list and as text being used by Find tool. Disabled items are not included in the table script and needs to be analyzed separately.

View Definitions

This tab has a general note on the top:

For all settings on this tab - databases need to be reloaded to apply updated options.

View definition compare options

By default, view is considered as changed if it has changed CREATE VIEW statement text (taking into account text compare options, see the Text Diff settings tab).
In addition, it can be considered as changed if it has changed:
Indexes
Triggers
Note that all these options affect CREATE VIEW script generation. That script is used to merge the whole view, for text diff preview in the object list and as text being used by Find tool. Disabled items are not included in the view script and needs to be analyzed separately.

Misc.

Application appearance

Don't resize toolbar on application zoom
Max tab header width: (value)

Don't resize toolbar on application zoom allows to keep toolbar unchanged when you zoom application UI using and zoom toolbar actions.

Ambiguous object names due to case differences

There can be the cases when object names are case-insensitive but have case differences in their names, for example on the left it is [MyTable] and on the right it is [myTABLE]. Application needs to handle it as the same object and there are places where it needs to show only one object name (for example in the Object List excel export or in the Batch Data Diff). Specify from which comparison side this name should be taken:
Left
Right

Reports

Default report file format: ○ *.xlsx   ○ *.json
Any report needs to be saved to the file:
Ask new report file name every time
Auto-generate report file names and save to specified folder:
(reports folder path)
Open generated report

Local cache

This folder is used to store temporary copy of object definitions, binary and string data and generated data merge scripts.
Note that it's better to change this option without any projects/databases loaded, otherwise some old cache files may be not cleaned up in the old folder.
(local cache folder path)

Free Version Limitations

  • The whole dialog is not available

Last updated: 2025-04-07