ApexSQL Diff release notes

Release: 2012.02.0282
Date: April 03, 2013
Description: Hot-fix release

Fixes:

  • The order of creating SQL objects in a synchronization script is incorrect when synchronizing databases with SQL queues that depend on SQL procedures

Release: 2012.02.0281
Date: March 18, 2013
Description: Minor feature, medium fix release

Enhancements:

  • The "/prescript_file_path" and "/postscript_file_path" CLI switches were added to specify file paths of pre-processing and post-processing scripts

Fixes:

  • The attempt to connect to a data source cannot be canceled when reloading object metadata on the project dialog’s Object filter tab
  • The "Login failed for user " error is encountered when attempting to save a project containing information on objects filtered out via the Object filter and an incorrect password has been provided
  • Different SQL role owners are detected but the SQL roles are not synchronized
  • The SQL owner and SQL schema of a SQL search property list are not recognized as dependent on the search property list itself
  • Updating the execution timeout setting in the SQL Server Management Studio add-in’s Connection options, doesn’t affect the same setting in the standalone application
  • Only live database can be compared via the SQL Server Management Studio add-in The SQL Server Management Studio add-in disregards changing the authentication type to Windows authentication and attempts to use SQL Server authentication instead
  • Differences in SQL search property list's PROPERTY_SET_GUID aren't detected
  • The SQL Server Management Studio add-in is not completely removed when the application is uninstalled
  • The error "Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))" is encountered when selecting any database as the comparison source or destination in SQL Server Management Studio 2005 if the “ApexSQL Diff” window is docked and unpinned
  • The Defaults drop-down button isn't highlighted in the Options tab of the SQL Server Management Studio add-in
  • Pre-processing and post-processing scripts’ syntax isn’t verified
  • Object filter settings persist when reopening the application although they should have been discarded on application shutdown
  • An incorrect synchronization script is created when live databases are compared and the “Include transaction handling” option is selected
  • The application exports to a script folder incorrectly, resulting in differences between the live objects and their exported scripts
  • The uninstall process of the application will not stop automatically if the SQL Server Management Studio add-in is active, resulting in an incomplete uninstall
  • The synchronization script contains the SQL USE statement if the “Script USE for database” option is turned off in the project file, and the command line interface is used for synchronization

Changes:

  • The application has been split into two versions - Developer and Professional

Release: 2012.01.0278
Date: October 15, 2012
Description: Major feature, medium fix release

Enhancements:

  • Performance has been significantly improved:
    • Comparison of all object types is now faster up to 140%; most noticeable performance improvements are for Schema/User objects loading which is now up to 7200% faster
    • Identifying object dependencies is now up to 2000% faster
    • Synchronization of all object types is now up to 1500% faster
  • The application now integrates into SQL Server Management Studio 2012, 2008 and 2005 as an add-in:
    • The following commands are now available from the 'ApexSQL Diff' main menu: 'ApexSQL Diff...', 'Support Forum', 'Help' and 'About ApexSQL Diff'
    • The following commands are now available from the 'ApexSQL Diff' Object Explorer database level context menu: 'Set As Source Database' and 'Set As Destination Database'
    • The comparison process can be initiated from the 'ApexSQL Diff' window after selecting the data sources and comparison options
  • The application is now FIPS compliant

Fixes:

  • Differences in trigger order of database DDL Triggers are not found
  • CREATE NONCLUSTERED INDEX statements is not displayed in Script Differences panel when comparing database backup with identical database snapshot
  • Modified Object Filter settings are immediately overwritten on attempt to open existing Object Filter settings
  • Modified Difference Filter settings are immediately overwritten on attempt to open existing Difference Filter settings
  • Stored procedures are not found on Dependencies step of Synchronization Wizard when synchronizing an Assembly
  • Contracts used by a Service are not included in the synchronization script when they exist only in one of the two compared databases
  • Synchronization script cannot synchronize an Assembly as not all dependent objects are found
  • Synchronize script cannot synchronize SQL Server 2012 database containing Triggers with a database without Triggers as Trigger dependencies are not found
  • Synchronize script cannot synchronize SQL Server 2008 database containing Views with a database without Views as second level View dependencies are not found
  • Source Schema and Destination Schema are blank for SQL Server 2012 database Sequence objects in the main grid if grid alignment is set to Centered

Known limitations:

  • Auto-updating from previous application version doesn't integrate the application into SQL Server Management Studio
  • Auto-updating from previous application version doesn't retain activation status and always reverts back to 14 days trial period
  • Inexistent User object differences are found when comparing identical live database with its backup
  • Database backup isn't created and no errors are reported after synchronizing databases when 'Backup the database before synchronization' setting is ON
  • "Differences View is not available" error message is encountered in Script Difference View panel in remaining application instances if multiple application versions were installed and the latest 2012 version is uninstalled
Release: 2011.02.0272
Date: September 07, 2012
Description: Hot-fix release

Fixes:

  • Identical DDL Triggers are shown as different when comparing live database with a snapshot
  • Stored Procedures aren't found as dependent objects when synchronizing different assembly
Release: 2011.02.0271
Date: May 18, 2012
Description: Medium feature, medium fix release

Enhancements:

  • SQL Server 2012 databases and backups are now fully supported for comparison and synchronization
  • The following SQL Server 2012 object types are now fully supported:
       Sequence
       Search property list
  • Natively compressed backups can now be compared
  • 'SQL Server 2012 Management Studio' output editor setting has been added to the Options form allowing using SQL Server 2012 Management Studio to open a generate synchronization script
  • Usability improvement: the Main grid now contains navigation bar for faster result’s browsing

Fixes:

  • Identical Stored Procedures are shown as different when comparing a live SQL Server 2000 database with a script folder
  • 'Files' difference type is not detected for Assemblies created from different libraries with different content
  • 'Index was outside the bounds of the array' error is encountered on canceling the database export to snapshot
  • Script Execution Results dialog doesn't display the synchronization script’s execution result outcome on immediate synchronization after selecting two live databases
  • 'Unable to load snapshot '<full path to snapshot>' error message is encountered after refreshing data sources if the comparison process has been previously canceled
  • The Filter Editor settings in Object Filter panel can be modified for object types excluded from the comparison
  • Main grid context menu color scheme doesn’t match the main window after changing the application color scheme
  • Script Difference panel is displayed when switching from Left Aligned to Centered grid view and all objects are filtered out from the main grid
  • 'Objects <object name> are not compared yet' CLI error message is encountered when /exc: and /ots: switches are used
  • Extended property differences of a SQL Server 2000 table constraint are not detected
  • The Bitwise Set in the Object Filter tab of the Project dialog shows a non-zero value after selecting the Un-Check All checkbox when working with SQL Server 2000 databases
  • The Bitwise Set tooltip in the Object Filter tab of the Project dialog describes Un-Check All checkbox functionality
  • Table indexes and unique constraints have differences in script formatting when comparing a SQL Server 2000 database to a SQL Server 2005 database
  • Sparse attribute differences are not recognized for user defined data type columns
  • 'Missing target object' error is encountered when synchronizing live databases using the 'Include Dependent Database Object' option
  • User login differences are not detected
  • Changing connection options in Project dialog doesn’t reinitiate comparison
  • Table unique constraints are still visible in the Difference viewer when the 'Ignore unique constraints' option is selected
  • 'Incorrect syntax near the keyword 'COLLATE'' error is encountered when synchronizing sparse columns
  • Reopening a project containing a regular expressions filter automatically excludes all newly supported object types from the comparison
  • Object differences in new line are not ignored when the 'Ignore white space' is selected
  • 'Cannot alter column <column name> to be data type text error is encountered when synchronizing text and ntext type columns
Release: 2011.01.0262
Date: July 7, 2011
Description: Major feature, medium fix release

Enhancements:

  • Performance has been improved for all common usage scenarios ranging from 10 to more than 700%. Most noticeable improvements are Script Folder and Source Control data source comparison (up to 400%), working over slow network connections (up to 700% and higher), synchronization script execution (up to 400% and higher) and direct synchronization to Script Folder and Source Control data sources (up to 700% and higher)
  • SQL Server Denali CTP1 databases can now be compared and synchronized including the following new features: Search property list name attribute for Fulltext Indexes Poison message handling attribute for Queues Geometry and Geography Auto Grid tessellation scheme for Spatial Indexes
  • Progress dialogs have been redesigned across the application for improved accuracy and usability

Fixes:

  • "There was an error while adding file to Source Control" error message is encountered when synchronizing live database to an empty project using Native Team Foundation Server 2010 driver
  • Indexes are displayed differently in Difference viewer for different SQL Server versions
  • Action order reported in Synchronization wizard for Roles may differ from the real one
  • System.InvalidOperationException exception is encountered when opening a project if ‘System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing’ security setting is enabled either in the Local Security Policy or as part of Group Policy
  • System.ArgumentException exception is encountered when comparing live database with a script folder that contains duplicate primary key definitions
  • Object name capitalization isn’t preserved when exporting live database to a script folder
  • ApexSql.Common.GrammarParser.Exceptions.ParserException exception is encountered when comparing snapshot with an empty database
  • Application options aren’t preserved on upgrade from 2008 application releases
  • Resetting project settings to default doesn’t trigger re-compare
  • Owner/Schema is displayed for non-schema bound objects in main grid when Centered view is selected
  • Paths to Script Folder data sources aren’t validated
  • Application doesn't offer to save changes in currently opened project when opening another existing project
  • Source and destination objects are differently highlighted in main grid when Centered view is selected
  • Same objects may get exported to source control differently
  • Database settings aren't preserved when exporting using MSSCCI Visual SourceSafe driver
  • Folder mappings can’t be customized separately per each data source
  • My Defaults settings aren’t preserved between application sessions
  • Application can’t connect to default machine repository using Native Subversion driver
  • Primary key and unique constraints with different column order are detected as equal with ‘ASC/DESC for Index Columns’ option ON
  • Extended properties on User Defined Data Types don’t get exported to Script Folder data source from SQL Server 2000 databases
  • Incorrect SQL Server version is shown in status bar for snapshots created from SQL Server 2008R2 databases
  • Action order may be reported incorrectly in Synchronization wizard when table data is preserved to a temporary table
  • "Exception UnknownProject occured performing operation: GetProjectPath" error message is encountered when connecting to a project using MSSCCI SourceGear Vault driver the second time
  • Partition Functions based on NCHAR and NVARCHAR data type get synchronized incorrectly
  • CsSCC.InvalidSccOperationException exception is encountered when synchronizing one Source Control project to another using MSSCCI drivers
  • ApexSql.Common.SourceControl.SourceControlErrorException exception is encountered when comparing live database and an empty project using MSSCCI Team Foundation Server driver
  • Synchronizing same named Event Notifications to Source Control project using MSSCCI drivers results in duplication messages with CsSCC.InvalidSccOperationException exception afterwards
  • System.ArgumentException exception is encountered when comparing Tables with a few indexes different in secondary attributes
  • Unsupported WHERE clause of statistics objects get synchronized from SQL Server 2008 to SQL Server 2000/2005
  • Dependent Tables may not get included in synchronization script when synchronizing Triggers with ‘Include Dependent Database Object’ option ON

Changes:

  • VBScript output format has been deprecated

Release: 2010.02.0257
Date: December 23, 2010
Description: Medium feature, medium fix release

Enhancements:

  • Fulltext Stoplists are now fully supported

Fixes:

  • “System.IO.IOException” exception is encountered when synchronizing to Script Folder with backup if snapshot path doesn’t exist
  • Empty folders are created for not selected for exporting object types when exporting to Script Folder in CLI
  • Synchronization script attempts to change CHECK/NOCHECK attribute of Foreign Key constraint after dropping
  • Respective difference code isn’t set for user data types different in nullability in Differences section of HTML Reports when comparing SQL Server 2008 databases
  • Some types of differences in spaces aren’t marked in Scripts section of HTML Reports
  • Main grid Object Filter settings can’t be exported if individual filters contain double quotes (“”)
  • Application stops responding after cancelling comparison with Cancel button
  • Differences in parameter type of Partition Functions aren’t detected
  • Application stops responding when comparing large databases (> 4,000 objects) containing encrypted objects
  • Comments enclosed within /* */ aren’t ignored with Ignore Comments option ON
  • db_datareader fixed database role isn’t synchronized to Script Folder and Source Control data sources
  • Application doesn't offer to save changes in opened project when creating a new one
  • Type of Script Folder and Source Control data sources isn’t specified in HTML Reports
  • No warning is shown when trying to install application while another instance is running
  • Differences in parameter order of Stored Procedures aren’t detected
  • Tables dependent on XML Schema Collections are synchronized with errors
  • Differences in DATA_COMPRESSION attribute of Tables aren’t synchronized
  • Reversing synchronization direction in Synchronization Wizard reverses source and destination objects in main grid
  • “System.NullReferenceException” exception is encountered when synchronizing AdventureWorks database resided in SQL Server 2008 to empty Script Folder
  • Spaces after commas (,) aren’t ignored with Ignore White Space option ON
  • Schema filters can be set for non schema bound objects in main grid Object Filter
  • Space bar can’t be used to check/uncheck items in main grid Object Filter
  • Project Management dialog Show on Startup option isn’t persisted
  • View DDL for Source/Destination Object main grid context menu items do nothing if application is running under non-administrative user account on Window Vista/7
  • Not contains, Equal and Between operators don’t work for Missing and Additional objects in main grid Object Filter
  • Non-existing projects are shown on Project Management dialog
  • Equal Stored Procedures with parameters of XML data type are reported as different
  • Associated Unique constraint gets unnecessarily recreated in synchronization script when renaming respective table column

Release: 2010.01.0246
Date: July 16, 2010
Description: Major feature, major fix release

Enhancements:

  • Encrypted SQL Server 2005/2008 objects can now be decrypted and processed (requires membership in the sysadmin server role)
  • Backups/backup sets can now be used as a data source
  • New Office 2007 style interface with ribbon bar, quick access toolbar, and ApexSQL Diff button
  • New Resources ribbon bar is introduced for quick access to Help page, Support forum, Training page, FAQs, Knowledge base, Troubleshooting, About and Get Updates dialog boxes
  • Options dialog box has been redesigned with new Office 2007 button bar
  • Application is now fully compatible with Team Foundation Server 2010
  • Project Defaults can now be defined for newly created projects
  • Project options can now be saved as current user defaults settings
  • Project options can now be reset either to current user or to ApexSQL defaults
  • Tooltips with option description and example are shown for Project options
  • Project Management dialog box now shows recently used projects or projects saved in any folder of choice
  • Projects can be Pinned/Un-Pined to Recent Projects list on Project Management dialog box
  • Data sources can be compared directly from Project Management dialog box
  • Project description can be edited directly from Project Management dialog box
  • 'Show on Startup' option has been added to Project Management dialog box
  • Synchronization direction is shown directly in Project Management dialog box for selected project
  • Show Advanced Tabs button in Project Management dialog box displays additional steps (Schema Mapping, Object Filter and Additional Scripts)
  • Dependent objects can now be selected for synchronization individually
  • Dependent objects are now shown with their references
  • Grouping by Action Type is available on Summary and Warnings step of Synchronization Wizard
  • New Warning dialog box that displays all high warnings before synchronization have been added
  • Synchronization script Editor can be selected on Output Options step of Synchronization Wizard
  • 'Create Synchronization Script' action is available on Output Options step of Synchronization Wizard when destination source is Source Control or Script Folder
  • 'Open script folder after synchronization' setting is now available for Script Folder data sources on Output Options step of Synchronization Wizard
  • 'Backup scripts before synchronization' setting is now available for Script Folder data sources on Output Options step of Synchronization Wizard
  • Results grid can now be presented in 2 views: Left Aligned and Centered
  • Results grid supports 3 predefined grouping types: Group by difference type, Group by object type and No grouping
  • Redesigned Object Filter allows setting filter both for particular object type and for all types
  • Object Filter allows defining filtering criteria using Filter Editor
  • Filter Editor allows to interactively create filtering expressions using Name and Schema fields
  • Filter Editor allows to filter comparison results based on 'Exclude if' or 'Include if' conditions
  • Filter Editor criteria can use the following comparison operators: 'Equal', 'Not Equal', 'Between', 'Not between', 'Contains', 'Not contains', 'Begins with', 'Ends with', 'Any of' and 'None of' and the following logical operators: 'And', 'And not', 'Or' and 'Or not'
  • Object Filter settings can be exported to or imported from file
  • Object Filter items can be grouped by SQL Object Type or by Category
  • New tooltip balloons have been added to source and destination data source bars of main window status bar
  • Number of selected objects and number of filtered objects are now displayed in main window status bar
  • New Comparison Statistics dialog box is response to clicking on the selected for comparison and filtered out bars
  • Startup action ('Show Project Management dialog', 'Show last opened project' and 'None') can now be set in Options dialog box
  • Application can now be presented in 3 color schemes: Blue, Silver and Black
  • Differences by type panel has been redesigned for improved look
  • Script Difference panel toolbar has been replaced with context menu

Fixes:

  • "NullReferenceException" exception is thrown when comparing snapshot of Northwind database with itself
  • Application cannot create a new source control project in Source Control Wizard for Team Foundation Server 2008
  • Application detects false differences in text-based objects when comparing Northwind database against its snapshot
  • "Cannot insert the value NULL into column" error occurs when synchronizing tables if a NULL table column with data is changed to NOT NULL
  • Difference Filter panel loses all filter selections after reloading exported filters from file
  • "NullReferenceException" exception is thrown when synchronizing users with extended properties
  • PAGE LOCK and ROW LOCK index properties aren't synchronized to SQL Server 2008 databases
  • "Cannot alter column '' because it is 'image'" error is encountered on altering a column of image type on SQL Server 2000
  • Application detects false differences in foreign keys after synchronizing to SQL Server 2000 and re-comparing
  • Table is excessively re-created when renaming a computed column
  • "System.IO.FileNotFoundException" exception is thrown on saving synchronization script to file on Windows Vista and 7
  • Object names are shown non qualified on Summary and Warnings step of Synchronization Wizard
  • Application detects false differences in queues when comparing SQL Server 2008 database with its export to folder
  • Schema bound view fulltext indexes aren't compared when comparing SQL Server 2008 database with its export to folder
  • Tables with full text indexes cannot be synchronized into empty script folder
  • Project file date is changed each time it's used in CLI
  • User data type extended properties aren't synchronized along with dependent tables with dependencies included
  • Data preservation code is included in synchronization scripts even for empty tables
  • View trigger may be incorrectly altered after drop in synchronization scripts
  • Application fails to bind rule to user data type on synchronization after unbinding
  • Application adds same UNIQUE constraint twice on synchronizing tables from SQL Server 2000 to SQL Server 2008
  • "System.NullReferenceException" exception is thrown when synchronizing a snapshot of SQL Server 2000 database to empty live SQL Server 2008 database
  • Application synchronizes tables via unnecessary DROP/CREATE statements instead of ALTER when function is changed in calculated column
  • Application doesn't create statistics after altering view
  • Application doesn't synchronize CHECK constraints in case dependent function parameter was removed
  • Application detects false differences in procedure names after rename with the use of sp_rename system procedure
  • Table differences in CHANGE_TRACKING attribute aren't synchronized
  • Schema bound objects aren't unbound prior to synchronization
  • Tables are excessively recreated during synchronization in case they are different in primary key only
  • Drop Extended Property actions in summaries are outputted prior to Rename Extended Property actions
  • ALTER AUTHORIZATION statements aren't processed from scripts
  • Application displays parse warnings on loading scripts with GRANTs for user data types
  • TYPE :: [dbo].[TypeName] constructs aren't parsed from scripts
  • Equally named but belonging to different tables check constraints are reported as existing on loading from scripts
  • Partitioned indexes are detected as belonging to PRIMARY filegroup on loading from scripts
  • Object filegroups aren't detected on loading from scripts
  • Application removes most of existing comments when loading scripts
  • Application doesn't detect dependent tables inside ENABLE TRIGGER statements in a procedure
  • Application doesn't detect dependent tables inside DROP STATISTICS statements in a procedure
  • Application cannot detect dependent assemblies of stored procedures
  • Application cannot compare Subversion projects from repositories named using mixed case

Changes:

  • Default values have been inverted for the following Ignore options: Permission, ANSI option, Bound Rules/Defaults, White Space, Case, Collations, Constraint Names, Full Text Indexes, WITH NOCHECK property of constraints, PAGE LOCK and ROW LOCK properties of indexes, NOT FOR REPLICATION Attribute of Constraints, Secondary Index Attributes, Statistics, User Defined Datatypes
  • Following options were moved to Project Setting Form from Synchronization Wizard Script Format Manage Owners Additional Script Processing
  • Select and Group columns capabilities have been removed from Main Grid
  • Column filter has been removed from Main Grid
  • Properties tab has been removed from Project Settings form
  • Application assemblies are now signed using ApexSQL private key and can be manually verified for validity

Release: 2008.11.0231
Date: November 11, 2009
Description: Minor fix release

Changes:

  • Application evaluation period has been changed from 30 to 14 days
  • The functionalities provided by the ApexSQL Source Control add-in are now integrated to the application and no longer require the add-in nor the add-in's activation

Release: 2008.10.0230
Date: October 14, 2009
Description: Minor feature, medium fix release

Enhancements:

  • Application now shows comparison summary and script level differences in CLI

Fixes:

  • Changing nullability from NULL to NOT NULL fails if the column contains NULL values
  • If new NOT NULL column with default constraint is added to table restoring table data fails with "Cannot insert the value NULL into column" error
  • Adding NOT NULL column to table causes differences in default constraints
  • Dependent views aren't detected for views
  • Dependencies on user data types aren't found for SQL Server 2000 databases
  • SQL Server 2008 fulltext indexes are scripted in SQL Server 2008 syntax to databases in 90 compatibility mode
  • InteropServices.COMException exception is thrown at application startup if Differences Viewer (WinCmp3x.ocx) is unregistered
  • Firing order is lost on trigger alteration
  • System.OutOfMemory exception is thrown on generating snapshots for large (>10,000 objects) databases
  • Application incorrectly detects differences between same views and functions when comparing database and script folder
  • Default constraints aren't read from script folders
  • Extended properties on primary keys created with "INDEX" specified as sub-object type aren't scripted
  • Saved credentials aren't cleared on server change on Data Sources tab of Project Settings form
  • Synchronization to Subversion source control system in CLI is done 2 times slower than in GUI
  • Database snapshots cannot be read if they are created on a system with date/time format MM/DD/YY hh.mm.ss.ffff
  • Information about database case sensitivity is missed in database snapshots
  • Last '/r/n' chars are not read from flat scripts for View and Function objects
  • Extended properties are not scripted for indexes created on a primary key constraint
  • Default constraints aren't read from scripts when names of constrains are equal in tables with same names but under different schemas
  • NCHAR procedures parameters are loaded from scripts having incorrect max_length and precision values
  • TEXTIMAGE_ON table property isn't scripted when objects are loaded from flat scripts

Changes:

  • New SQL Server 2008 types are now scripted to SQL Server 2000/2005 the following way: date as binary(5), time as binary(3), datetime2 as binary(8), datetimeoffset as binary(10) geometry as nvarchar(4000) geography as nvarchar(4000) hierarchyid as binary(892) table data types as image
  • FILESTREAM column property isn't scripted to SQL Server 2000/2005 now
  • Object names are now scripted fully qualified in PRINT statements and comments
  • Application now doesn't allow to label synchronization result when synchronizing to Subversion source control system

Release: 2008.09.0229
Date: August 28, 2009
Description: Minor fix release

Fixes:

  • "Object PartitionColumn is ignored: object already exists" warning is shown when reading partition schemas from scripts
  • Cannot read and compare scripts of textual objects if the scripts are generated using SQL Server Management Studio with the "Include IF NOT EXISTS" option ON
  • When "Check for Object Existence with IF EXISTS/IF NOT EXISTS" option is ON, textual objects with single quote in the script body are incorrectly scripted
  • Textual objects are sometimes scripted without GO causing errors when running synchronization script
  • Script-level differences are sometimes not shown for textual objects (both panes of Difference Viewer are empty)
  • WITH ENCRYPTION clause appears after AS in triggers with ' in names if Add WITH ENCRYPTION option is turned on
  • False differences are always detected in database role members order when comparing live database vs. its copy in flat scripts
  • "Object PartitionColumn is ignored: object already exists" script parsing message appears without pointing to the exact partition column when parsing partitioned table scripts
  • False differences in unique constraints appear when comparing SQL Server 2005 database vs. SQL Server 2008
  • Objects aren't loaded from flat script files if their creation scripts are inside an sp_executesql procedure call

Release: 2008.08.0228
Date: August 19, 2009
Description: Minor feature, medium fix release

Enhancements:

  • New warnings have been added for the following synchronization scenarios: Extended properties on statistics from SQL Server 2000 to SQL Server 2005/2008 XML data types from SQL Server 2005/2008 to SQL Server 2000 CLR data types from SQL Server 2005/2008 to SQL Server 2000 Date, time, datetime2, datetimeoffset and hierarchyID data types from SQL Server 2008 to SQL Server 2000/2005 DATA_COMPRESSION attributes from SQL Server 2008 to SQL Server 2000/2005 XML column sets from SQL Server 2008 to SQL Server 2000/2005
  • New Differences Viewer Toolbar enabling differences viewer font customization was added hidden by default

Fixes:

  • Tables with computed columns are always synchronized via DROP/CREATE
  • Incorrect message is shown on comparison if Source Control working folder is unavailable
  • Credentials are asked for twice on database exports with SourceGear Vault MSSCCI driver
  • Same working folder can't be used for multiple projects when working with Microsoft Visual SourceSafe
  • Description for Case In Names comparison option is incorrect
  • Various UI problems in Source Control wizard under 120 dpi fonts
  • Subfolder names are incorrectly verified in Source Control wizard
  • When synchronizing to script folder scripts are always created on PRIMARY filegroup
  • XML collections are incorrectly scripted to difference viewer
  • Comparison progress is shown in the left upper corner of desktop in first run after installation
  • Database triggers aren't synchronized if both data sources are script folders
  • SQL Server 2005/2008 objects aren't shown at Project Settings | Object Filter step by default
  • Schemas aren't enclosed in square brackets in database exports
  • Destination only schema mapped to source is incorrectly dropped in generated synchronization script if Include Dependent Database Objects option is ON
  • Application doesn't synchronize unique clustered and fulltext indexes on views
  • It's impossible to configure and save projects with data sources not set
  • DirectoryNotFoundException is thrown on synchronization if default folder for synchronization script is unavailable
  • In Source Control wizard, test succeeds even with unavailable Source Control project
  • Synchronization from SQL Server 2005 to SQL Server 2000 fails for nvarchar(max) columns
  • Source Control add-in activation silently expires in case application isn't restarted after activation
  • "Incorrect syntax near ," error appears when adding WITH ENCRYPTION clause to a procedure's header with DBCC FREESYSTEMCACHE ('ALL','default') operation in the body if Add WITH ENCRYPTION option is turned on
  • WITH ENCRYPTION clause appears in ANSI options for schema bound views if Add WITH ENCRYPTION option is turned on
  • OutOfMemory exception is thrown when parsing large databases (>10,000 objects) if Include Dependent Database Objects option is on
  • Information about database case sensitivity is missed in database snapshots
  • Database trigger state is neither compared nor synchronized if source or target trigger is disabled

Changes:

  • When generated script can't be opened with internal editor (when it's >3MB in size), user is offered to select another editor in addition to saving script to file

Known Limitations:

  • MSSCCI-compliant Source Control systems are not supported in CLI

Release: 2008.07.0227
Date: May 28, 2009
Description: Medium feature, minor fix release

Enhancements:

  • Improved support for Script Folder and Source Control datasources. Temporary database is no longer required for restoring the information from the script folders or scripts stored under the Source Control
  • Added Default Collation property to specify default collation for Script Folder and Source Control datasources
  • Added SQL Server Version property to specify script compatibility level for Script Folder and Source Control datasources
  • Added "Script USE for Database" option to specify if "USE []" statement should be included in synchronization script
  • New /collation1, /collation2 CLI switches to specify default collation for Script Folder and Source Control datasources
  • New /compatibility_level1, /compatibility_level2 CLI switches to specify SQL server version for Script Folder and Source Control datasources
  • New /no_scr_use_db CLI switch to specify the USE statement should not be included from synchronization script
  • Tree view in Source Control Wizard to navigate between pages
  • User interface of Login page in Source Control Wizard is specific for every Source Control system
  • Last used Source Control settings in Source Control Wizard are retained for every Source Control system
  • An ability to configure Folder Mappings for Script Folder datasource
  • An ability to review Source Control Project Status (CheckOut status of all files in the source control project)
  • Added DatabaseSettings.xml file for Script Folder and Source Control datasources that contains information about default collation and SQL server version
  • Added new column with checkboxes to Folder Mappings form that allows to include or exclude types for export to or load from Script Folder and Source Control datasources
  • Added new column with checkboxes to Folder Mappings page of Options form that allows to set default values for including or excluding types for Script Folder and Source Control datasources

Fixes:

  • Incorrect processing of schema bound views on syncing the dependent object

Changes:

  • GetLatestVersion/GetByLabel options are moved to Source Control Wizard
  • Removed /drop_temp_database1, /drop_temp_database2 CLI switches

Known Limitations:

  • MSSCCI-compliant Source Control systems are not supported via the console (CLI)

Release: 2008.06.0226
Date: April 20, 2009
Description: Minor feature, minor fix release

Enhancements:

  • Source Control datasource supports MSSCCI-compliant systems
  • Source Control Wizard allows initializing Source Control datasource

Fixes:

  • Performance: usage the Object filter feature via VPN is very slow
  • Bad layout in the Project Settings dialog under Large fonts (120 dpi)
  • False differences in script-based object headers (for example, in procedures) in brackets, quotes and schemas/owners (for example, create proc "dbo".[my_procedure] versus create proc my_procedure)
  • Incorrect handling of the renamed script-based objects resulted in displaying the old names in the difference viewer and in the final script

Known Limitations:

  • MSSCCI-compliant Source Control systems are not supported via the console (CLI)

Release: 2008.05.0225
Date: March 19, 2009
Description: Medium feature, medium fix release

Enhancements:

  • An ability to export/import Folder Mapping to XML file
  • An ability synchronize to Script Folder and Source Control datasources
  • An ability to set comments for Check-In to Source Control
  • An ability to set label for project in Source Control
  • Added visual tool tip to Schema mapping tab
  • Added Actions by File tab to Summary And Warnings step of Synchronization Wizard
  • New /script_folder1, /script_folder2 CLI switches to specify Script Folder data source
  • New /export CLI switch to export live database to Script Folder, Snapshot or Source Control datasource
  • New /folder_mapping CLI switch to import Folder Mapping from XML file
  • Source control support for Visual SourceSafe
  • New /author, /legal switches to explicitly specify "Created By" and "Legal" information in output scripts and reports

Fixes:

  • Poor button's layout in 120 dpi in project Settings dialog
  • Lack of progress bar for Export Data Source functionality
  • Choose Project in SCS dialog takes unusually long time in some cases when exporting the data source
  • Using incorrect table sys.indexes instead of sys.STATS when checking existence of statistic object
  • Incorrect script for syncing indexes of indexed views without dependencies
  • NullReference Exception appears trying to select an object type in the Options|Folder Mapping Tab
  • Choose Project in Source Control Settings dialog takes unusually long time in some cases when exporting the data source
  • App incorrectly scripts indexes with DATA_COMPRESSION option
  • Unable to load snapshot error appears trying to open some snapshots
  • Incorrect preserving data from a table having an identity column

Changes:

  • Grid tool bar is hidden by default
  • Difference Code Grid is moved from Differences Filter panel to new Differences panel
  • Differences Filter panel is hidden by default
  • Removed /use_sourcecontrol_integration1, /use_sourcecontrol_integration2 CLI switches
  • Removed /make_snapshot CLI switch
  • Changed order of object types in filter popup window of Type column of Main Grid
  • Source schema and destination schema columns of Main Grid are shown if schemas are mapped – otherwise it shows one "Schema" only
  • Excluded 'Ignore' word from all checkboxes of option tabs of Project Setting form
  • Remove all report options except Include Scripts one from HTML report options (do those changes in CLI)
  • App doesn't restore system objects from Script Folder datasource

Release: 2008.04.0221
Date: February 2, 2009
Description: Minor feature, minor fix release

Enhancements:

  • New source type (Script folder) in Project Settings form
  • Added "Folder Mapping" tab to "Options" form that allows to map object types to script folders
  • Added "Temp Databases" tab to "Options" form that allows to manage temporary databases
  • Replaced "Create a snapshot" feature with "Export Data Source" that allows to export database to snapshot, source control or script folder
  • Added browsing for repository and project in "Source Control Settings" form
  • Added "Export Data Source" button to Project Settings that opens "Export Data Source" form

Fixes:

  • "For replication" stored procedures are stealth
  • AUTHOR and LEGAL fields in output script are not from project file when CLI uses project file
  • Unable to generate syncing script when the destination is source control in CLI mode
  • "Save to:" location for output script won't work. It will always be saved to default Syncronize.sql file
  • Comparison snapshot against same snapshot shows differences in function (in column order) in some cases
  • Exception occurs while using project created under SQL SERVER 2008 on SQL SERVER 2000
  • "Cannot specify partition number in the create index statement" sync error in some cases

Changes:

  • Offline help file is no longer provided and application will now directly access online help from the default system browser

Release: 2008.03.0218
Date: December 23, 2008
Description: Medium fix release

Fixes:

  • Exception working with Vault; trying to read files that are not scripts (like zips) from Source Control label
  • HTML reports are generated as Unicode although /enc:ANSI option is used in CLI
  • When comparing Source Control to Source Control data source both data sources must not have must not use the same temporary database
  • Application was unable to get SQL scripts from Vault in some cases
  • SQL Server 2008 keyword PERSISTED not recognized
  • Source Control: Pressing Test button in the empty form results in not user friendly message
  • Fails to pick up database user from CLI
  • Syncing script was not generated when destination database is Source Control folder
  • Compare a database against the snapshot where the snapshot is generated from that database
  • Backup database will be generated in synchronization script even if we uncheck Backup option from synchronization wizard
  • Exception using project with source and destination databases hosted on SQL Server 2008 and then using the same project for databases hosted on SQL SERVER 2000
  • Comparing 2 identical snapshots will show differences
  • Syncing two tables with computed column c3 (c3=c1+c2 ) used ALTER instead CREATE statement
  • Exception when trying to generate the Html Plain Report
  • Visual layout disturbed in HTML Example for Ignore UDT option
  • Layout: Edit boxes on Source Control form different in width
  • Layout: Comparison grid column not saving its size
  • Layout: Synchronization wizard buttons disturbed
  • AdventureWorks (SQL Server 2008) to empty database synchronization issues
  • Not detecting well dependencies of the source object
  • Not detecting stored procedure, functions, views being dependent on user defined type
  • Unable to synchronize FILESTREAM NULL (source) against FILESTREAM NOT NULL (destination)
  • Unable to recognize difference in Data compression type ROW vs. PAGE
  • Unable to recognize SQL SERVER 2008 FILTERED indexes
  • Some cases when Tables with dependences are incorrectly synchronized
  • Error in syncing script in drop order for user defined types
  • Xml columns are mapped to ntext when comparing SQL SERVER 2000 and SQL SERVER 2008 db's
  • Unexpected error in CLI "Object reference not set to an instance of an object"
  • Selecting objects in synchronization grid using CTRL+A sometimes not work
  • Cannot remove the Source Control Add-In from "About" box
  • Unable to save the project from Project Settings Wizard
  • Differences when comparing the same live database Adventure Works hosted on SQL 2005 and hosted on SQL 2008
  • Exception "Key in dictionary" when generating the synchronization script
  • Exception when current project is deleted
  • Exception "Unable to cast object of type" when comparing
  • Application doesn't find dependencies to an assembly in some cases

Known Limitations:

  • Scripts need to be named . .sql way
  • Each object type should be scripted to the respective folder: 'ROLES' or 'ROLE' for Roles, 'ASSEMBLIES', 'ASSEMBLY' for Assemblies, 'CONTRACT', 'CONTRACTS' for Contracts, 'CREDENTIAL', 'CREDENTIALS' for Credentials, 'DATATYPE', 'DATATYPES', 'TYPE', 'TYPES', 'UDT', 'UDTS', 'USERDEFINEDTYPE', 'USERDEFINEDTYPES', 'USERDEFINEDDATATYPE', 'USERDEFINEDDATATYPES' for Data Types, 'DDLTRIGGER', 'DDLTRIGGERS' for DDL Triggers, 'DEFAULT', 'DEFAULTS' for Defaults, 'EVENTNOTIFICATION', 'EVENTNOTIFICATIONS' for Event Notifications, 'FULLTEXTCATALOG', 'FULLTEXTCATALOGS' for Fulltext Catalogs, 'FUNCTION', 'FUNCTIONS', 'UDFS', 'UDF', 'USERDEFINEDFUNCTION', 'USERDEFINEDFUNCTIONS' for Functions, 'MESSAGETYPE', 'MESSAGETYPES' for Message Types, 'PARTITIONFUNCTION', 'PARTITIONFUNCTIONS' for Partition Functions 'PARTITIONSCHEME', 'PARTITIONSCHEMES' for Partition Schemes, 'PROCEDURE', 'PROCEDURES', 'STOREDPROCEDURE', 'STOREDPROCEDURES' for Procedures, 'QUEUE', 'QUEUES' for Queues, 'REMOTESERVICEBINDING', 'REMOTESERVICEBINDINGS' for Remote Service Bindings, 'ROUTE', 'ROUTES' for Routes, 'RULE', 'RULES' for Rules, 'SCHEMA', 'SCHEMAS' for Schemas, 'SERVICE', 'SERVICES' for Services, 'SYNONYM', 'SYNONYMS' for Synonyms, 'TABLE', 'TABLES' for Tables, 'TRIGGER', 'TRIGGERS' for Triggers, 'USER', 'USERS' for Users, 'VIEW', 'VIEWS' for Views, 'XMLSCHEMACOLLECTION', 'XMLSCHEMACOLLECTIONS' for Xml Schema Collections
  • Each object should be scripted to the individual file
  • Each script should not contain USE db command

Known Issues:

  • Decrypting of encrypted MSSQL 2005 and 2008 objects not supported

Release: 2008.02.0216
Date: November 24, 2008
Description: Major feature, major fix release
Note: In 2008, ApexSQL Diff was split into two products: ApexSQL Diff, for structure comparison and ApexSQL Data Diff for data comparison. These release notes cover all previous versions of the pre-split product, ApexSQL Diff, and new versions of ApexSQL Diff.

Enhancements:

  • Up to 5x faster comparison and synchronization performance than in previous version
  • Differences Viewer now displays carriage return and linefeed symbols as whitespace
  • Source control support for SourceGear Vault, Subversion, Team Foundation Server
  • New source type (Source Control) in Project Settings
  • 'Add with Encryption' option in Synchronization Wizard for functions, procedures, triggers and views
  • Support for SQL Server 2008 table-valued user-defined types
  • Support for SQL Server 2008 SPARSE columns
  • Support for SQL Server 2008 FILE_STREAM columns
  • Support for SQL Server 2008 DATA_COMPRESSION option
  • Support for SQL Server 2008 READONLY parameters of SQL Server 2008 procedures
  • Support for SQL Server 2008 Geometry, Geography, HierarchyID types
  • Support for SQL Server 2008 XML_COLUMN_SET columns
  • Support for SQL Server 2008 CRYPTOGRAPHIC_PROVIDER credential attribute
  • New /scf1(/scf2) CLI switch for path of local folder with script files
  • New /sci1(/sci2) CLI switch to use source control server to retrieve scripts for comparison
  • New /sct1(/sct2) CLI switch for source control type
  • New /scs1(/scs2) CLI switch for name of source control server
  • New /scu1(/scu2) CLI switch for login for connection to source control server
  • New /scp1(/scp2) CLI switch for password for connection to source control server
  • New /scr1(/scr2) CLI switch for repository on source control server
  • New /scj1(/scj2) CLI switch for project path containing script files on source control server
  • New /scd1(/scd2) CLI switch to delete script files from local folder before retrieving new files from source control
  • New /scl1(/scl2) CLI switch to get script files from source control by label
  • New /scdd1(/scdd2) CLI switch to drop temporary source control database (if exists)
  • New buttons "<< Clone" and "<< Reverse >>" for datasources in Project Settings
  • Added "Reset Page Settings to Last Saved Values" option in Project Settings
  • Added "Status" and "Action" columns to objects grid of Main Form
  • Added "Default Directory" and "Default File Name" options for synchronization script to "Options" form
  • Added filtering by checked/un-checked items in Difference Code panel
  • Added sql example for each option in Project Settings Form Options page contain
  • New "Properties" tab that allows changing of project name and description
  • Added tooltips for "Source" and "Destination" columns

Fixes:

  • NOT NULL columns are sometimes added to tables without default constraints
  • The presence of parentheses in Check Constraints is considered as a difference
  • Differences in filegroups may not be detected for tables
  • Equal functions incorrectly treated as different in MSSQL2K vs. MSSQL2005 comparisons
  • 'Data is NULL' exception encountered during reloading of table columns
  • Diff Viewer does not ignore set comparison options even when the 'Ignore Comparison Option' is ON
  • The Functions as datatype dependencies aren't detected when the 'Include Dependent Database Objects' option is ON
  • The Rules difference not detected in Difference Code
  • Although Ignore Case and Ignore Comments options are unchecked, case and comment differences are still displayed in Difference Code Viewer
  • Incorrect existence checks generated for triggers when scripting from MSSQL2005 to MSSQL2K
  • Foreign Key Cascades are lost on synchronization
  • 'Dbo has insufficient rights' error during reloading of CLR DDL trigger
  • Schema/owner mapping algorithm sometimes cause synchronization exception
  • In case of mapping one source schema to multiple target schemas, an object may appear in the main grid several times and synchronization may result to an exception
  • During roles/members synchronization, users are not recognized as dependencies even when the 'Include Dependent Database Objects' option is turned on
  • The non-dependent table is incorrectly included on the Synchronization Wizard Dependencies detection step when schema mapping is used
  • HTML report generated with Javascript error for some options
  • Actions in Script Result step of Synchronization Wizard are incorrectly ordered when synchronizing UDT with dependent tables
  • User guest incorrectly loaded for databases where it doesn't exist
  • Nvarchar length in user datatype is sometimes incorrectly scripted
  • Application may hang during comparison of some stored procedures
  • Table DDL doesn't contain TEXTIMAGE_ON statement if column types are varchar(max), nvarchar(max) or varbinary(max)
  • NullReferenceException encountered during reloading of foreign key
  • Differences Viewer sometimes highlights differences without considering sql syntax
  • ArgumentNullException sometimes occurs while checking dependencies for table synchronization
  • Equal Rules displayed as different
  • 'Ignore Case In Names' may cause exception while comparison
  • User datatype synchronization script may fail if there is table that uses the datatype
  • Application roles default schemas are synchronized using DROP/CREATE instead of ALTER
  • Disabling DLL Triggers may cause error if output format of generated script is VBScript
  • If Default is bound to several columns on the same table, generated synch script fails
  • If one or more objects are bound to User, generated synch script fails
  • Assemblies that are dependent on DDL Triggers are not synchronized correctly
  • If Rule is bound to a Datatype, generated synch script fails
  • If Service is bound to a Contract, generated synch script fails
  • Other fixed exceptions (encountered during dependency checking): 'The process cannot access the file .\Data\ServerName\DbName\cache2005.14.207.0.dat because it is being used by another process.' 'End of Stream encountered before parsing was completed.' 'DB create script contains more than one CREATE statement for: schema.object' 'Unable to parse detected CREATE FULLTEXT INDEX' 'Object reference not set to an instance of an object'
  • 'Checked Only' option in the HTML/CVS Report Options form incorrectly displays equal objects in HTML/CVS report

Changes:

  • Removed Property item from Differences Viewer context menu
  • Replaced Comparison Wizard with new Project Settings
  • In Project Settings, Options tab contains treeview for selecting option pages
  • Object Filter tab now contains tree view for selecting Individual Object Selection tabs
  • Synchronization Wizard redesign to 3-step wizard with advanced options
  • New "Reverse" button now allows user to change synchronization direction
  • Added status bar to Synchronization Wizard
  • Removed Outlook bar from main form
  • Added "Edit Current Project Settings..." menu item to content menu of objects grid
  • "Source owner" and "Destination owner" columns appear instead of "Owner" if owner mapping is used
  • Changed default sorting in objects grid to by status (#1 Not equal, #2 Added, #3 Missing, #4 Equal); default sorting within each group is now by object type (#1 Table, #2 View, #3 Procedure, #4 Function and so on)
  • Checkboxes are now not displayed in objects grid for equal objects
  • Removed "Automatically Re-Compare Objects After Synchronization" option from Synchronization Wizard
  • Option "Include Dependent Database Objects" in Synchronization Wizard is now checked by default
  • Removed "Explicitly Parse Database for Proper Script Creation Order" option from Synchronization Wizard and CLI commands
  • Removed "Treat Object Selections As Exclude" option from Synchronization Wizard
  • "Object Filter" panel moved to Main Form and toolbar counterpart removed

Known Issues:

  • Decrypting of encrypted MSSQL 2005 objects not supported