2
兼容性级别80的实际行为是什么?
有人可以让我对兼容模式功能有更好的了解吗?它的行为与我预期的不同。 据我了解兼容模式,这是有关各种版本的SQL Server之间的某些语言结构的可用性和支持。 它不会影响数据库引擎版本的内部工作。它将尝试阻止使用早期版本中尚不可用的功能和构造。 我刚刚在SQL Server 2008 R2中创建了一个兼容级别为80的新数据库。用一个int列创建一个表,并用几行填充它。 然后执行带有row_number()函数的选择语句。 我的想法是,由于row_number函数仅在2005年才引入,所以这会在compat 80模式下引发错误。 但是令我惊讶的是,这个方法很好。然后,可以肯定的是,仅当您“保存一些东西”时才评估兼容规则。因此,我为row_number语句创建了一个存储的proc。 存储的proc创建很好,我可以完美地执行它并获得结果。 有人可以帮我更好地了解兼容模式的工作方式吗?我的理解显然是有缺陷的。