Contents 

AdeptSQL Diff Reference
AdeptSQl Diff versions, history and milestones
Supported versions of MS SQL Server
Getting started
Connecting to databases
Scanning available servers
Saving and opening comparisons
Running from command line
Diff in portable mode
Working with the schema
Viewing schema differences
Ignored Differences
Comparing objects side-by-side
Dragging and dropping schema items
Using schema filters
Generating comparison reports
Customizing the reports
Executing the SQL
SQL errors and warnings
Transaction support
Keyboard shortcuts
Editing commands and keyboard shortcuts
Using keyboard templates
Choosing debugger's key mapping
Comparing table data
DataDiff overview
DataDiff configuration dialog - table-level
DataDiff configuration dialog - columns
Special situations comparing data
Exporting data to Excel
DataDiff Reports
Column configuration file
Configuring AdeptSQL Diff
Options dialog
Schema Scan
Selective Loading
Comparison
Name Comparison
Code Comparison
User-defined types
Indexes and Statistics
Permissions and XProps
Synonyms
Other details to ignore
Scripting
General logic
Side-by-side scripting
Formatting
Identifiers
Schema Level
Tables
Constraints
Default Values
Procedures, Views, etc
Visuals
Text Fonts
Schema Tree
Summary collections
Side-by-Side View
Suppressed dialogs
Data comparison options
General
Scripting
Column Config File
Using COM Automation interface
Automating schema comparison
Automating data comparison
Licensing and contact info
Registration of AdeptSQL Diff
License conditions
Contact information

AdeptSQL Diff Online Help

Prev Page Next Page

Supported versions and features of MS SQL Server

Top  Previous  Next

At the moment of writing, the latest version of AdeptSQL Diff is 1.96 and it supports the following versions of MS SQL Server:

 

· MS SQL Server 2008 (both full server and the Express edition)
· MS SQL Server 2005 (both full server and the Express edition)
· MS SQL Server 2000 (both full server and MSDE)
· MS SQL Server 7.0

 

We extensively test the scripts generated by the Diff in various scenarios. Before each new update is released, it must pass all applicable tests on each of the SQL versions listed above.

At the moment our internal test set contains over 830 individual tests, although naturally not all of them apply to earlier versions of the SQL server. 

 

Note:  starting from Diff 1.96, we are phasing out support for SQL 7.0.  Which means that normally everything "should" work with SQL 7.0, but future Diff updates might not be fully tested against that server.

 

Comparison between server version. It is possible to compare two databases residing on different SQL Server versions, which is in fact a common situation when porting existing databases to a newer server version.  AdeptSQL Diff usually has no problems synchronizing a schema from older to new versions of MS SQL Server.  Synchronizing in the other direction may not always be possible if a particular feature (such as an XML index) is not supported on the older server.  The Diff always checks the SQL statements about to be generated against the target server version and issues a warning (and doesn't generate the code) whenever the SQL is not suitable for the target server.

 

Support for specific SQL features.  We try to keep up with whatever new features Microsoft adds into the "classic" SQL schema, i.e. anything related to data types, tables, views, procedures and triggers.  Other parts of the schema (such as Service Broker, encryption or MDX objects) are considered of less importance and may be not supported or only partially supported by the current version of AdeptSQL Diff.

 

The tables below list various kinds of schema objects and SQL featured which are supported, partially supported or ignored by the Diff. 

A couple of notes to all these tables:

 

a) Many of the modern MS SQL features has first appeared in SQL 2000.  The Diff still can work with SQL Server 7.0 databases, but it is probably of little interest to discuss "what's new in SQL 2000" now.  So wherever you see "all" server versions In the tables below, it actually means SQL 2000+.

b) The "full" support for a particular schema object or feature means that the Diff does all of the following:

· Correctly loads all relevant information from the database,
· Compares all loaded attributes against a counterpart object in the other database,
· Displays the object in the schema tree
· Generates a synchro script for it
· If there are any dependencies between this and other objects, the Diff takes them into account when scripting and can drop/recreate or modify the dependent objects as required. 

 

c) The "partial" support of a particular object or feature means that the Diff is at least sufficiently aware of that object or feature to avoid breaking down other parts of the schema or producing unusable scripts.

 

A) Basic schema features that have been there for a long time and are fully supported by AdeptSQL Diff:

 

 

Schema object/Feature

Server versions

Support in AdeptSQL Diff

Comments

Basic tables with:

   Columns of predefined types

   Columns of user-defined types
   Named or unnamed constraints

   Indexes

   File groups

   (for SQL2008-specific options - see below)

all

Full

The Diff tries to generate the minimally disturbing synchro script, using ALTER TABLE and preserving the table data whenever necessary.

User-defined types

  derived from native data types

  with optional rule- and default- binding

  (for CLR types and table types - see below)

all

Full

The Diff supports both "exec sp_addtype" and "CREATE TYPE" syntaxes, depending on the target server and the situation.

Views with any combination of

   column list,

   SELECT,

   options (ENCRYPTION, SCHEMA_BINDING, VIEW_METADATA)

 

all

Full

a) Diff doesn't parse the column list or the SELECT statement, keeping (and comparing) the entire body of the VIEW in the textual form.

 

b) Views with ENCRYPTION can't be fully loaded. The Diff keeps an empty body for them and knows how to handle this situation gracefully when scripting.

Stored procedures with

  optional names numbering
  optional FOR REPLICATION clause and

  any valid "WITH..." options

all

Full

See the ENCRYPTION note above

Functions

  of different kinds (scalar, table inline, table multi-statement)

with options (ENCRYPTION, SCHEMABINDING, etc)

(for CLR functions - see below)

all

Full

a) The Diff keeps the entire function body with only rudimentary parsing. However, it does distinguish different function kinds and would never match e.g. a scalar function against a table one, even if they have the same name.

b) See the ENCRYPTION note above

Triggers

  DML triggers - those defined on a table to handle INSERT,
DELETE, UPDATE events

(database- and server- level triggers are not supported)

all

Full

See the ENCRYPTION note above

Global constraints, including:

  Creating RULEs and DEFAULTs,

  Binding them to user-defined types,

  Binding them to table columns

all

Full


STATISTICS,
  both named and unnamed

all

Full


Extended properties

  on the database level and

  for all supported objects

all

Full

(Optional)

Just as for permissions, the Diff has an option to either synchronize or preserve the original extended properties in the target database.

File groups, including:

  individual files by name,

  their physical location,

  file specs (max size, etc),

  setting default filegroup

all

Full
(Optional)

Filegroups will tend to be different on a test server and on a production server, and physical file locations will almost certainly be different.  So comparing filegroups (as well as filegroup changes in tables/indexes) may be tricky.  There are options controlling how filegroups should be compared, if compared at all.

Database principals, including:

  Users,

  Roles,

  Application roles

all

Full
(Optional)

Again, the users are likely to be different on any two servers and synchronizing them may not be a good idea. Comparing of principals is optional in the Diff. 

Permissions, including:

  Object-level permissions,

  Database-level permissions,

  (for SQL2008-specific permissions - see below)

all

Full
(Optional)

Same for the permissions.  If not synchronizing permissions, it is important that the Diff at least doesn't lose them when synchronizing (re-creating) other objects.  By default, the Diff does re-create the original permissions in all situations where they might have been dropped.

 

 

B)  MS SQL 2005/2008 extensions supported by AdeptSQL Diff 1.96:

 

Schema object/Feature

Server versions

Support in AdeptSQL Diff

Comments

All XML-related features in SQL 2005 and 2008 are fully supported:

XML Schema Collections.

2005+

full

No parsing of the XML occurs; the XML bodies of the matched "collections" are compared textually. The result is affected by the code comparison options. Specifically, the comparison can be made case-sensitive an insensitive, literal or "lexical" (ignoring white space).

XML columns

  in tables,

  in procedure parameters,

  with or without XML Schema

2005+

full

a) XML columns in parameters didn't actually require special handling, because the Diff doesn't parse parameter lists.

 

b) When synchronizing down to a SQL 2000 server, the Diff converts any XML columns to NTEXT.

XML indexes, including
  primarily and secondary XML indexes,

  with any valid options

2005+

full


XML column sets with

  sparse columns

2008+

full


New features in types, tables and indexes:

New column types, including:
  new date times datetime2, datetimeoffset
  predefined CLR types geometry, geography, hierarchyid

2008+

full


Partial indexes
  (WHERE clause in indexes)

2008+

full


User-defined table types, including
  their usage in procedure parameters
 

2008+

full

The Diff fully support scripting of those "CREATE TYPE..." definitions and correctly resolves dependent procedures. Fortunately, table types can only be used in local variables and parameter lists (that we don't do much with), but not in tables.

EXECUTE AS ...  clause in
  procedures,
  functions,
  triggers

2005+

full


FILESTREAM attribute for columns, including
  FILESTREAM_ON clause after the table

2008+

full


Named schemas, including
  Objects with distinct schema and owner,
  User-defined types within named schemas,
  Schema-level extended properties and permissions
 

2005+

full

Starting from SQL 2005, "schema" and "owner" are distinct attributes of an object. The Diff fully scripts definitions of named schemas, as well any changes in schema or authorization of objects.
(Objects belonging to different named schemas are normally never paired to each other, but there are ways to make them linked)

SYNONYMs

2005+

full


 

C)  SQL Features and objects not supported or only partially supported by AdeptSQL Diff 1.96.

 

Schema object/Feature

Server versions

Support in AdeptSQL Diff

Comments

Partitioning in Diff 1.XX is supported only as much as necessary to script tables and indexes correctly. Full support for this feature will be available in Diff 2.0.

Partition schema

2005+

Partial

PARTITION SCHEMAs are loaded with other data spaces, but are not displayed, compared or scripted. Their names are used to correctly script partitioned tables and indexes.

Partition functions

2005+

None

In its "partial" support of partitioning, the Diff can safely ignores these functions. They would be needed to properly script PARTITION SCHEMAs, but not for partitioning in tables/indexes.

Partitioning clauses, including:
CREATE TABLE ....  ON partition_schema(column)
CREATE VIEW ....  ON partition_schema(column)

2005+

supported

a) The Diff does script those, but you must make sure that any relevant partition schemas already exist on the target database before running the update scripts.

b) Scripting of the ON/TEXTIMAGE_ON/FILESTREAM ON clauses is optional and can be turned off.

Replication in Diff 1.XX is supported only as the [NOT] FOR REPLICATION attributes on various schema objects.

NOT FOR REPLICATION clause in
  FOREIGN KEYs,
  CHECK constraints,
  IDENTITY columns,
  TRIGGERs

all

supported

The NFR attribute is compared and scripted, but not otherwise used.  Even if one database in the comparison is the "publisher" and the other a "subscriber", the Diff won't be aware of that and won't change scripting of NFR entities in any way.

FOR REPLICATION clause in stored procedures

all

supported

If a procedure is defined FOR REPLICATION, the Diff will not be aware of any references to it from the replication schema entities.

Replication schema itself, including:
  Publications,
  Articles,
  Distributors,
  Subscribers

all

None

Not planned

.NET-related schema features.  Since MS SQL Server 2005, it has been possible to integrate into your database user-defined types and code defined on CLR level. The current version of AdeptSQL Diff has very limited support of such objects, just enough to correctly work with tables even when they contain CLR-defined types.  We consider support for CLR-defined objects essential and will introduce it the next major Diff version

.NET Assemblies

2005+

No

Diff 1.XX ignores any assembly definitions in the database and therefore can't synchronize them.

 

(will be available in Diff 2.0)

CLR-defined types

2005+

Partial

In tables, the Diff recognizes references to CLR-defined column types and scripts such columns correctly.  However, the CLR types themselves are not displayed in the schema tree and not synchronized.

CLR-defined code objects, including
  Procedures,
  Functions and
  Triggers

2005+

No

Diff 1.XX ignores any such objects.  To avoid errors executing synchronization scripts, users should ensure that all relevant CLR entities are created on the target database prior to running the comparison.

 

(will be available in Diff 2.0)

Other unsupported SQL features and objects

Full-text indexing, including:

  FULLTEXT CATALOG,
  FULLTEXT INDEX

2005+

No

(will be available in Diff 2.0)

Service Broker objects including:
  MESSAGE TYPE,

  EVENT NOTIFICATION,
  CONTRACT,
  SERVICE,
  REMOTE SERVICE BINDING,
  QUEUE,

  ROUTE,

  ENDPOINT

2005+

No

(will be available in Diff 2.0)

Encryption-related objects, including:
  MASTER KEY,
  SYMMETRIC KEY,
  ASYMMETRIC KEY,
  CERTIFICATE,
  CREDENTIAL

2005+

No

(will be available in Diff 2.0)

Data Mining Extensions (DMX), including:
  MINING STRUCTURE,
  MINING MODEL

2000/2005+

No

not planned

Multidimensional Expressions (MDX), including:

  ACTION,
  CUBE, GLOBAL/SESSION CUBE, SUBCUBE,
  MEMBER,
  CELL CALCULATION,
   SET

2000/2005+

No

not planned

       

   
Converted from CHM to HTML with chm2web Standard 2.85 (unicode)