SQL Server 2014 兼容级别错误

Posted

技术标签:

【中文标题】SQL Server 2014 兼容级别错误【英文标题】:SQL Server 2014 wrong compatibility level 【发布时间】:2019-10-08 13:54:57 【问题描述】:

我正在使用 SQL Server 2014 Management Studio,我认为它的兼容性级别为 110,但在尝试使用 PERCENT_RANK() 函数时,出现错误

'PERCENT_RANK' 不是可识别的内置函数名称

我尝试更改兼容性级别。

这里是数据库选项菜单中可用的兼容性级别选项:

有什么帮助我可以使用 110 版本的功能吗?

【问题讨论】:

我认为支持的兼容性级别取决于您查询的数据库引擎而不是您使用的 Mgmt Studio 的版本 兼容级别是数据库属性,不受您使用的SSSM版本的影响。您根本不需要设置兼容级别即可使用窗口函数 SSMS 2014 支持 SQL Server 2008-2014。 SSMS 2018 支持 SQL Server 2008+。仅仅因为您使用的是 SSMS 2014 并不意味着您使用的是支持版本的 SQL Server。通过运行PRINT @@VERSION; 找出答案。 PERCENT_RANK 是在 SQL Server 2016 中引入的。屏幕截图建议您使用 SQL Server 2008 或 2008R2,而不是 2014,因为缺少 2012 兼容级别。 SQL Server 2008 完全不受支持。如果您正在使用它,并且确实需要更新的功能,那么您似乎需要升级。 【参考方案1】:

首先检查您运行的是哪个版本的 SQL Server:

SELECT @@VERSION AS 'SQL Server Version';

然后检查兼容级别:

SELECT compatibility_level
FROM sys.databases
WHERE name = 'database name';

设置名称,因为每个数据库的兼容级别可以不同。

最后,您可以使用脚本设置兼容性级别:

ALTER DATABASE databasename  
SET COMPATIBILITY_LEVEL = 120;  
GO 

或者在 SQL Server Management Studio 中使用数据库属性

【讨论】:

【参考方案2】:

该功能是在 SQL Server 2012 中引入的,您需要 110 或以上的级别。这不取决于您的 Mangament studio 版本,而是取决于 SQL Server 版本。 请看'PERCENT_RANK' is not a recognized built-in function name in SQL Server

【讨论】:

以上是关于SQL Server 2014 兼容级别错误的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 兼容性级别和基数估计

SQL Server 兼容性级别和基数估计

OPENJSON 在兼容级别设置为 130 的 SQL Server 2016 上不可用

SQL Server 兼容级别

以兼容级别 80 运行 SQL Server 2005 数据库是不是会对性能产生负面影响?

用于在 SQL Server 中验证表名的正则表达式(数据库兼容级别 120)[关闭]