In the new version of ApexSQL Diff 2016 R2, many new features and enhancements have been added.
SQL Server on Amazon RDS support
ApexSQL Diff 2016 R2 fully supports SQL Server on Amazon RDS, for database schema comparison and synchronization.
SQL Server Management Studio 2016 integration support
In previous release, SQL Server 2016 was fully supported and now SQL Server Management Studio 2016 add-in integration is supported as well. All five data source types can be selected to initiate the comparison process from SQL Server Management Studio 2016:
Save project as batch file
This new feature is added as a part of the Synchronization wizard and it allows creating of batch files with all previous options set. For example, in the last step of the Synchronization wizard – Summary and warnings, click on the Save project as batch file button in the bottom-left corner of the window:
Once clicked, the Save project as batch file window will open and the batch script will contain all CLI switches that represent all options that were previously set in the GUI project:
When there is a need to perform the same synchronization process or to create comparison reports multiple times, this feature can come in handy, as once it’s created, it can be double-clicked to execute the process or it can be scheduled.
For more information about this feature, check out the article on this link.
Help to HTML switch
The new Help to HTML CLI switch /help_to_html [ /hth ], creates the CLI help file in the HTML format. This new switch is located under the Additional options in the CLI help, when the following command is executed:
The full path to the CLI help file, along with a .html extension, needs to be provided to export the CLI help into the HTML format:
Once the above command is executed, the HTML CLI help file will be generated with the following message:
The CLI help file was generated successfully and saved to C:\Help.html
Also, it will be automatically opened in a default browser:
To easily manipulate the CLI help file, in the top-right corner of the window, the Expand/Collapse all buttons can be used to expand/collapse option groups. If the Collapse all button is clicked, only the group’s names will be shown:
Switches for each group name can be shown, with a click on a group name:
The new HTML CLI help is better and easier for viewing, locating switches and options, and reading descriptions.
Return error codes switch
One more CLI switch that has been added to the Additional options, is the /return_codes [ /rc ] that outputs all return codes to console, while the application process is executed through the CLI. If this switch is specified along with data sources in the CLI, all return codes will be shown before the comparison process is started:
ApexSQLDiff.com /rc /d1:SourceDB /d2:TargetDB /v
0 – success
1 – general error code
2 – invalid switch
3 – duplicated switch
4 – incompatible switches
5 – missing argument
6 – missing a dependent switch
7 – invalid value
8 – value out of range
9 – invalid file path
10 – invalid project file
11 – unsupported edition
13 – trial has expired
14 – connection timeout
15 – connection failed
16 – IO error
17 – operation canceled
18 – application error
19 – execution error
20 – execution timeout
101 – insufficient permissions
102 – output file creating failed
Connecting to [(local)].[SourceDB]
Connecting to [(local)].[TargetDB]
17 new CLI return error codes
In this release, 17 new CLI return error codes are introduced into ApexSQL Diff, with 22 in total.
The return error code will be shown once the application execution is finished in the CLI. Find out how to get the return error code from here.
The list of all return error codes in ApexSQL Diff, with their descriptions, is shown below:
Package option switches
In this release, CLI switches for all package options are added and all of their options can be set from the CLI. Check out the knowledgebase article here, to see all new added CLI switches under the Package switches section.
Warnings handling switch
Until now, warnings were shown only in the Synchronization wizard in the application’s GUI, and the process could be continued or stopped. From this release, the /warnings_handling CLI switch is added to allow:
Ignore warnings – warnings will be ignored during the application execution
Abort on medium or high warnings – application execution will be aborted on medium or high warnings
Abort on high warnings – application execution will be aborted only on high warnings
The warnings handling switch and its description can be seen in the article on this link, under the General synchronization options section.
Additionally, the Warnings output is now shown as a part of the CLI output messages.
Ignore invalid objects option and switch
The Ignore invalid objects option is added to the application’s GUI and CLI. In the application’s GUI, it’s added in the Options tab of the New project window, under the Attributes for script-based objects group:
In the CLI, it’s added as the IgnoreInvalidObjects [iio] option, for the /ignore_general switch:
It ignores enforcing of deferred name resolution. When it’s unchecked, it generates a warning if an invalid object is referenced by a procedure:
Procedure [dbo].[uspGetAddress] references an invalid object [dbo].[Addresses]
Invalid object is recognized. Use /ignore_general:iio switch in order to ignore invalid objects
Ignore new objects option and switch
By default, if a project file is saved with specific objects selected for the comparison and/or synchronization process, any new object will be automatically added and checked in the saved project file. The Ignore new objects option is added in this release to prevent adding newly created database objects to saved project files.
As previous described option, the Ignore new objects option is also added in the Options tab, under the Objects group:
As for the CLI, it’s added as the IgnoreNewObjects [ino] option, for the /ignore_general switch:
One more CLI switch that has been added to the Additional options is the /silent switch. It can be used when there is a need to prevent showing all CLI output messages to console.
Improved CLI output messages
With ApexSQL Diff 2016 R2 release improved CLI output messages are introduced that can be seen only when the /verbose switch is specified.
In the following example, two local databases are compared and synchronized, and Excel report will be generated at a specified location:
ApexSQLDiff.com /rc /database1:SourceDB /database2:TargetDB /synchronize /output_type:excel /on:excel_report.xml /verbose /force
Comparison summary – contains information about database objects that are different, missing, additional, or equal:
Depending on which option is set for the /warning_handling switch, the appropriate message will be shown. By default, warnings will be ignored and the following message will be shown:
Warnings will be ignored during the application execution, due to the Ignore warnings option
Synchronization summary – contains information about which database was synchronized, the number of warnings, and the number of objects that are updated, added, deleted, and the total number of synchronized objects:
Warnings and Changes log files can be viewed in provided location next to the See part, as shown above.
Changes output – contains the number of updated, added, and deleted objects in destination database:
August 10, 2016