我们有一个新的应用程序,其中包括 ETL 脚本、R 和 .NET 代码,所有这些代码都在 SQL 2016 架构上积极开发。
我最近刚刚获准开始使用 SQL 2017 设置新环境。
我想了解是否有任何代码迁移相关的更改可能需要为 SQL 2017 安装进行,或者在 SQL 2017 上运行 SQL 2016 数据库兼容模式的行为与它只是一个 SQL 2016 安装运行一样完整的 SQL 2016 (130) 兼容模式?
阅读此链接后,我发现了以下内容
要将SQL Server 数据库引擎升级到最新版本,同时保持升级前存在的数据库兼容性级别及其可支持性状态,建议对数据库中的应用程序代码进行静态功能表面积验证,使用Microsoft数据迁移助手工具 (DMA)。DMA 工具输出中没有关于缺失或不兼容功能的错误,可以保护应用程序免受新目标版本的任何功能回归。
假设此检查通过,还有什么我应该做或看的吗?
它的行为不会完全相同。兼容模式适用于数据库级别,而不是实例级别,这仍然是 2017 年。但它的工作原理基本相同。
我会检查2017 年的中断功能列表,因为一些实例级别的更改可能仍会影响您的代码,尽管它处于 2016 年兼容模式。但是,与 2017 年相比发生的重大变化相对较小,因此您不太可能会受到影响。通常,一些版本的重大更改包含在兼容模式下,而另一些则不是。
文档给出了很好的例子,
和
您还应该查看2017 年已弃用的功能列表,并尝试从未来的开发中删除任何这些领域,以使您的应用程序面向未来。当然,2017 年的任何新功能也可能需要更新才能利用它们,但我的印象是您更关心破坏性更改。
综上所述,您可能没问题,但在将其移至生产环境之前,仍应仔细彻底地测试升级兼容模式。