When comparing databases hosted on different server versions, you may encounter incompatibilities in schema objects.
The topic lists cases when schema comparison may fail due to these incompatibilities.
If the compatibility level of a SQL Server 2005 database is set to 80, it conforms to strict rules for views, stored procedures, functions, and DML triggers. Comparison and synchronization may fail.
If the compatibility level of a SQL Server 2008 database is set to 90, it conforms to strict rules for views, stored procedures, functions, and DML triggers. Comparison and synchronization may fail.
If a source database contains an object type that is not supported by a target server, that object will not appear in the Schema Comparison document during the comparison process.
If a target schema contains objects that are not supported by a source server, those objects are displayed in the Schema Comparison document. Their default operation is set to None and they will not be affected by synchronization. You may change their operation to Drop, so the objects can be dropped from the target schema.
If a source object contains key properties that are not supported by the target server, dbForge Studio identifies such objects as inconsistent and displays a warning:
Object Table 'table_name' cannot be created on target server. Object definition contains options that are not supported by target server (different versions).
These objects cannot be synchronized.
If a source object includes properties or subobjects that the target server does not support, but the object can still be created or synchronized without them, dbForge Studio will perform the synchronization and display a warning:
Object 'Object_properties_name' cannot be created on target server. Object definition contains options that are not supported by target server (different versions).
After synchronization, dbForge Studio will treat the objects as identical.
If a source DDL object contains unsupported properties, such as indexes or table properties, these properties will not be displayed in Text Compare.
When downgrading database properties, the synchronization succeeds. However, the properties unsupported on the source server will not be included in the generated synchronization script.
Incompatibilities can occur even when an object type is supported on both the source and target databases. For example, both SQL Server 2008 R2 (10.50) and SQL Server 2016 (13.0) support tables, but a table on one server might include a column with a data type that the other server does not support.
Examples of such incompatibilities include:
If the source and target tables are identical except for partitioning, the target table can be updated:
If the source partitioned table has a different structure than the corresponding target table, or if no matching target table exists, the table status is Different.
When the target schema supports partitioning, partitioned tables appear in the schema comparison results. When the target schema does not support partitioning, partitioned tables are ignored.
If schema objects are functionally identical but have syntax differences caused by different server versions, the DDL is generated using the target object syntax.
| Object | From | To | Issue |
|---|---|---|---|
| IN-MEMORY OLTP | 2022 | 2017 | Not supported |
| COLUMNSTORE | 2016 | 2012 | Not supported |
| JSON functions | 2016 | 2014 | ISJSON() missing |
| Temporal Tables | 2016 | 2014 | SYSTEM_VERSIONING error |
| Graph Tables | 2017 | 2016 | NODE/EDGE syntax error |
| Data Masking | 2016 | 2014 | MASKED WITH ignored |
| Always Encrypted | 2016 | 2014 | Not supported |
| PolyBase | 2016 | 2014 | Not supported |
| Ledger Tables | 2022 | 2019 | Not supported |
| JSON data type | 2025 | 2022 | Not supported |