兼容级别 120 引入的一些新行为如下所示 :
◆ SQL Server 2014 包括了对创建和优化查询计划的组件的显著改进。这个新的查询优化器功能依赖于使用数据库兼容性级别 120。 若要利用这些改进,应使用数据库兼容性级别 120 开发新的数据库应用程序。应对从较早版本的 SQL Server 中迁移的应用程序进行仔细测试,以便确认保持或改进了好的性能。如果性能下降,可以将数据库兼容性级别设置为 110 或更低,以便使用较早的查询优化器方法。
◆ 将 date 值转换为字符串值时,不忽略语言设置。
◆ EXCEPT 子句中的递归引用产生遵从 ANSI SQL 标准的错误。而在较低的兼容级别时,EXCEPT 子句右侧的递归引用产生无限循环。
◆ 递归 CTE 不允许列名重复。
◆ 更改触发器不更改触发器的状态(已启用或已禁用)。
◆ 将 IDENTITY_INSERT 设置为 OFF 后,不能为表中的标识列插入显式值。
◆ MERGE 语句的 $action 子句返回的值的排序规则是数据库排序规则而非服务器排序规则,因此不会返回排序规则冲突错误。
◆ SELECT INTO 语句可创建并行插入操作。插入大量行时,并行操作可提高性能。
5. 升级建议
一般只有最后两个版本的兼容级别可以直接升级。例如,可以将 SQL Server 2008(兼容级别为100)的数据库直接升级到 SQL Server 2014(兼容级别为120)。
不推荐直接将 SQL Server 2005(兼容级别为90)的数据库升级到 SQL Server 2014。如果直接升级,升级过程中兼容级别将从 90 更新为 100。