我们的 SQL Server 2019 数据库有一个 Visual Studio 解决方案,它存储在一个 git 存储库中。一个表有几个使用 BETWEEN 运算符的检查约束,如下所示。
CONSTRAINT chk_FileTbl_MonthlyDate CHECK (MonthlyDate BETWEEN 1 AND 31)
当我使用 Redgate SQL Compare 14 将 repo 与数据库进行比较时,它显示了使用小于和大于运算符重新格式化的约束,如下所示。
CONSTRAINT chk_FileTbl_MonthlyDate CHECK (MonthlyDate >= 1 AND MonthlyDate <= 31)
我认为这是 Redgate 软件中的错误/功能,并提交了我正在等待回复的票证。但是,我的同事随后使用了 Visual Studio 2019 中的比较工具,它做了同样的事情。如果我们查看定义表的文件,它使用 BETWEEN,但两个比较工具都显示并部署了一个具有小于/大于格式的更改脚本。
是什么导致了这种行为?我们最近搬到了 SQL Server 2019,它是某种内置优化吗?