在 SSMS 中对更高版本的 SQL Server 进行查询失败?

Jma*_*ier 4 ssms sql-server-2014

我在我的计算机上运行了 SQL Server 2014 和一个compatibility_level值为 100的数据库(SQL Server 2008)。我认为这足以在 SSMS 中编写仅适用于 SQL Server 2008 及更低版本的查询,但出于某种原因,SSMS 运行使用OVER (PARTITION BY ...)仅适用于 2012 及更高版本的子句(带有 BETWEEN 参数)的查询。

我们的软件需要与 2008 R2 及更高版本兼容。如果我编写的查询与 2008 R2 不兼容,是否有我可以更改的设置会导致我的查询在 SSMS 中失败?

Bra*_*adC 9

除了研究应该刻意使用的功能之外,这里唯一合理的解决方案是拥有一个健壮的测试结构,您可以在其中针对您打算与之兼容的所有可能版本的 SQL Server 运行您的应用程序。

即使对于可能适用于多个 SQL 版本的查询,它们的行为也可能略有不同。

100 次中有 99 次,您不太可能看到 SQL 的新版本破坏现有代码,但是“(耸肩)它可能会工作”与“我的应用程序经过全面测试并在以下 SQL 版本上受支持之间存在差异:..." 如果您在博客上发布有用的脚本,则前者可能没问题。但是,如果您要销售和支持商业应用程序,那么您肯定想要后者。