SQL Compare 12

SQL Compare 12.4 release notes

What's new in SQL Compare 12.4

Summary view of detailed differences

The biggest change we have made in SQL Compare 12.4 is to add a brand new way to examine the differences between two objects in your database. Up until now, SQL Compare has always relied on the SQL differences viewer to convey the differences between an object in the source database and its counterpart in the target database:

As illustrated in the screenshot above, the SQL differences viewer often makes it harder than it could be to see what the differences are. Problems include:

  • syntactic differences like the addition or removal of trailing commas are highlighted but are semantically irrelevant.
  • columns in different orders in the source and target cause entire rows to be highlighted as different when in fact there is no change at all.
  • features that are often ignored, like constraint names, are still highlighted as different despite having no effect on any subsequent deployment.
  • constraints that are inlined on one side but not the other result in both being highlighted as different but in fact they are semantically identical.

To address these shortcomings, SQL Compare 12.4 adds an alternative way of viewing the differences between objects in a database. The new summary view provides a more concise view of the differences between two objects by getting rid of the SQL and showing only the semantic differences between objects in a much more structured way:

In the above screenshot, you can clearly see the addition of a column, a modification to another and a change to a primary key constraint. We hope that the new summary view will eliminate a lot of the confusion that can be caused by noisy diffs in the SQL difference viewer.

The summary view is under development and we'd love to hear what you find useful about it and where it can be improved.

Improved ordering of columns in the SQL difference viewer

In addition to the new summary view, we have also made it easier to see why two tables are different when looking at the existing SQL difference viewer. In the past, you may have had a table with columns displayed like this:

 

 

In this screenshot, the SQL difference viewer is displaying a lot of noise because the order of the columns is not the same between the left and the right hand side. In particular, highlighting the names of columns is unhelpful; they are present on both sides, just in a different order. The actual differences between the two tables are relatively straightforward, but the SQL difference viewer is making it hard to pick out the changes. In SQL Compare 12.4 we have improved the SQL difference viewer so that it always displays the columns in an order that makes it clear exactly what the differences are:

 

 

Now that the columns are displayed in the same order on the left and right hand side, it is much more obvious that the only changes here are those relating to the DEFAULT and NOT NULL constraints.

Red/green highlighting in the SQL difference viewer

In addition to improving how columns are ordered in the SQL difference viewer, we have also made changes to the colors used to show differences between the left and right hand sides. Previously, differences on both sides were shown in yellow; starting in version 12.4, differences in the source database are shown in green and differences in the target database are shown in red:

 

 

By moving to this color scheme, commonly used in other diff viewer tools, we have increased visual contrast, making it easier to see at a glance where the differences between the source and target are. The change to the color scheme also makes it clearer that the changes to the source database, in green, will be added, or applied, to the target and those changes to the target database, in red, will be removed, or overwritten. This is in keeping with how most other diff viewer tools use red and green to mark additions in green and removals in red.

We like the new color scheme and we would like to hear your feedback on whether it works for you too.

12.4.12.5042 - August 24th 2017

Fixes

  • SQL Compare no longer fails to generate a deployment script when comparing 2 source control revisions that contain migration scripts.

12.4.11.5008 - August 21th 2017

FREQUENT UPDATES RELEASE

Fixes

  • SC-9551: Snapshots now correctly save REVOKE permissions

12.4.10.4968 - August 8th 2017

Fixes

  • SC-9506: When all the differences in a project were previously selected then newly discovered differences will automatically be added to the selection.
  • SC-9532, SC-9537, SC-9538: The SQL Compare parser now accepts syntax for new SQL Graph, ALTER INDEX and STRING_AGG features in SQL Server 2017
  • SC-9534: SQL Compare will create tables before schemabound functions to resolve dependencies
  • SC-9519: SQL Compare will no longer fail registration if the EXECUTE ANY EXTERNAL SCRIPT permission is present on a role object. fix: SC-9524: Fulltext changes to columns in views are now correctly displayed in the deployment wizard summary view
  • SC-9520: SQL Compare will now deploy DISABLED indexes to a scripts folder

12.4.9.4945 - July 31th 2017

Features

Fixes

  • SC-9518: The layout of the backup data source grid in the new project window has been fixed
  • SC-9526: The SQL Compare parser now accepts parentheses around identifiers in a CREATE FULLTEXT INDEX statement

12.4.8.4926 - July 26th 2017

FREQUENT UPDATES RELEASE

Fixes

  • SC-9521: Deploying a fulltext index to a view no longer causes a crash in the deployment wizard.
  • SC-9267, SC-9296, SOC-8837: Fixed a bug where for some machines database registration could fail with the message "An unexpected error was encountered while querying the database system tables..." (with the original error message "String was not recognized as a valid DateTime")
  • SC-9501: Spurious TEXTIMAGE_ON clauses are no longer appended to tables with computed columns registered from scripts folders
  • SC-9516: SQL Compare now handles dependencies between fulltext indexes and other indexes correctly
  • SC-9513: Manual column mappings that would have been auto-mapped are now persisted

12.4.7.4905 - July 13th 2017

Features

  • All comparable objects are now supported in the summary view! For text differences, SQL Compare will show the first actual difference between the two objects, as well as other properties such as permissions and extended properties.
  • Summary view: Improved difference highlighting.

Fixes

  • Filters checked into source control data sources are now applied by default.
  • SC-9509: The 'Generate comparison results report' menu item will now be enabled after comparing a project from the 'My projects' window using the 'Compare now' option
  • SC-9514: Switching deployment direction will no longer cause the currently selected object to be deselected
  • SC-9512: SQL Compare will now report info messages (eg PRINT statements) when running a deployment

12.4.6.4860 - July 4th 2017

FREQUENT UPDATES RELEASE

Features

  • Summary view: Updated UI to improve horizontal scanning. Added colors to indicate additions and deletions. Improved display of newline characters.

  • Functions and views are now supported in the summary view! SQL Compare will show the first actual difference between the text of two objects, as well as other properties such as permissions and extended properties.

Fixes

  • SC-9504: SQL Compare will now correctly treat multiplication/division operations as having a higher precendence than bitwise operations in the parser
  • SC-9471: SQL Compare can now write constraints with an AT TIME ZONE clause correctly
  • SC-9507: SQL Compare will no longer script out an empty ALTER SEQUENCE statement when the only extended properties are different between the respective sequences.

12.4.5.4811 - June 28th 2017

FREQUENT UPDATES RELEASE

Features

  • The text size in the summary view is now customizable
  • The SQL diff viewer now uses the red/green highlighting commonly found in other diff tools.
  • Stored procedures are now supported in the summary view! SQL Compare will show the first actual difference between the text of two stored procedures, as well as other properties such as permissions and extended properties.

Fixes

  • SC-9486: The deployment summary now lists all planned actions on loading the summary tab.
  • SC-9508: The SQL diff view is no longer inverted when switching deployment direction.
  • SC-9496: Functions which depend on a UDT will no longer compare different when the function is read from a scripts folder and the UDT is missing from the scripts folder

12.4.4.4771 - June 21st 2017

FREQUENT UPDATES RELEASE

Features

Summary view

The summary view will now display all key columns that are different between two indexes, rather than just the first different column. The summary view diff highlighting has also been improved to only perform highlighting on individual characters where it makes sense for the type of property being compared.

Fixes

  • SC-9421: Improved difference highlighting in the summary tab.
  • Fixed an issue in SQL Compare which could cause certain parts of the SQL view to be spread over multiple newlines when matched with an empty line on the other side of the comparison
  • SC-9497: Improved Summary view display of key columns on indexes

12.4.3.4752 - June 20th 2017

FREQUENT UPDATES RELEASE

Features

SQL view

When the 'Force column order' option is not set, columns in the target SQL view will now be reordered to match those in the source SQL in order to provide a more easily readable diff.

Summary view

We've made display of column datatypes more concise in the summary view, and the layout of columns will now take column mappings into account.

Fixes

  • SC-9494: SQL Compare will no longer truncate extra long warnings in the deployment wizard
  • SC-9184: SQL Compare now shows if an index is disabled on the SQL view, therefore showing differences that may have previously been visually hidden.
  • SC-9419: Summary view results for table columns will now take column mappings into account.
  • SC-9483: SQL Compare now remembers TEXTIMAGE_ON settings on a table in a non-default filegroup and doesn't default TEXTIMAGE_ON setting when deploying.
  • SQL Compare will no longer fail the comparison when using the SQL Source Control data source if there is an issue loading the source controlled filter file.
  • SC-9493: SQL Compare now correctly reads fields from indexes on a filetable when reading from a scripts folder
  • SC-9479: In the summary tab, the display of columns that differ in their datatype has been made more concise
  • SC-9411, SC-9180, SC-9397: SQL Compare should now correctly preserve different newline characters in user-generated SQL

12.4.2.4681 - June 7th 2017

FREQUENT UPDATES RELEASE

Features

Summary view
  • We've increased the default text size, removed some extra whitespace around the top row of the results and added scrollbars to make the summary view easier to use. The summary view tab will also now stay selected when switching between different objects in the comparison.

Fixes

  • SC-9475: Improved interactions around the database dropdown in the Edit Project dialog: in particular, hitting backspace will no longer clear the database name entirely. As part of this work we've removed the feature where entering a database name for a database that had the SQLSourceControl Database Revision extended property set would display the value of this extended property in the UI. This extended property is no longer set by SQL Source Control and the feature ended up causing a disproportionate amount of complexity for information that it provided.
  • SC-9437: Fixed a bug which could cause some rows in the My Projects dialog to not render correctly when there were some invalid project files in the displayed folder
  • SC-9457: SQL Compare now automatically applies the default filter (Filter.scpf) when registering from scripts folders or source control.
  • Drop and recreate PERSISTED computed columns when changes are found, rather than rebuilding their table.
  • SC-9455: SQL Compare now produces the correct existence check when renaming a table and moving it between schemas.
  • SC-9403: SQL Compare no longer leaves duplicate NOCHECK statements when deploying to scripts folders

12.4.1.4639 - May 30th 2017

FREQUENT UPDATES RELEASE

Features

  • The authentication type for databases (Windows/SQL Server) is now specified as a dropdown. This allows more authentication types to be added in the future.

Fixes

  • SC-9404: Fixed a bug which prevented the saved sort order in the My Projects dialog from being applied correctly
  • SC-9456: Fixed some high-DPI display issues in the deployment wizard 'Deployment method' settings that occurred when the windows UI scale was set to 250% or greater
  • SC-9439: The "Edit selected file" button on the "Error parsing scripts" dialog will now correctly launch the selected editor
  • SC-9271: When an error occurs updating or dropping an extended property the current transaction will now be rolled back
  • SC-9429: When rebuilding a temporal table, SQL Compare no longer scripts out the HIDDEN property or default constraints on the new history table.
  • SC-9443: SQL Compare now correctly scripts out DATA_COMPRESSION on temporal and memory-optimized tables
  • SC-9476: SQL Compare now handles index drops correctly while disabling SYSTEM_VERSIONING.
  • SC-9474: Fixed some high-DPI display issues in the deployment wizard title bar

12.4.0.4551 - May 16th 2017

FREQUENT UPDATES RELEASE

Features

  • Added a summary view which will semantically explain how database objects differ
  • SC-9401: SQL Compare now accepts the 'CREATE OR ALTER' syntax introduced in SQL Server 2016 SP1

Fixes

  • SC-9441: SQL Compare now accepts SET syntax where a property on a CLR user-defined type is being set
  • SC-9440: SQL Compare can now register multiple XML indexes on a single table with several selective XML indexes per index

Didn't find what you were looking for?