Joe*_*man 9 sql-server ssdt compatibility-level
我目前正在做一个需要在不同SQL环境中运行的项目。我的大多数开发人员都有 SQL Server 2017。该应用程序在 SQL Azure 中运行,客户端最近开始运行一些使用 SQL Server 2016 的环境。该项目正在使用 SSDT 生成 Dacpac 文件,这对于开发来说工作正常,但是我们最近运行了开发人员使用 2017 年引入的系统函数的案例。引用此函数的存储过程脚本在我们的开发和 Azure 环境中运行良好,但在 2016 年环境中失败。
是否有一种简单的方法可以针对某个任意 SQL Server 版本验证脚本,而无需我们为希望支持的每个 SQL Server 版本创建多个测试环境?该方法不需要 100% 万无一失,但应该能捕捉到绝大多数潜在的兼容性问题。
我知道没有一个简单的工具或现有的脚本。在扫描特定版本中添加的功能(或由特定兼容性级别启用)的使用方面,可以使用 MS 的文档编写一些内容,但如果您的存储过程和其他用途可能无法通过临时 SQL 捕获调用这种模式适用于任何事情,您需要做进一步的研究以涵盖对未记录功能的更改。
不需要我们为我们希望支持的每个 SQL Server 版本创建多个测试环境?
针对您需要支持的最低版本进行测试,而不是针对此后的每个版本进行测试,是否是不可接受的?这只是您需要添加到 CI/测试/其他流程中的一个额外实例。如果 2016sp1 是您需要支持的最早版本,那么几乎所有版本都提供所有版本,因此您可以使用 Express,甚至无需为该实例支付任何许可费用。如果您不使用任何仅在 2016sp1 之前的标准/企业功能,您也可以使用以前的版本。