如何使用 T-SQL 更改数据库的兼容级别

发布于

在 SQL Server 中,可以使用该语句更改数据库的兼容级别。ALTER DATABASE

如果您的数据库是在早期版本的 SQL Server 中创建的,但现在需要使用仅在更高版本的兼容级别下可用的功能,则这可能很有用。

例如,该函数仅在兼容级别 130 或更高的情况下可用。虽然您的 SQL Server 安装可能支持此兼容级别,但您仍然可以拥有使用较低兼容级别的数据库。在这种情况下,如果要针对这些数据库使用,则需要将兼容级别提高到 130 或更高。OPENJSON()``OPENJSON()

示例

下面是更改数据库兼容性的代码示例。

ALTER DATABASE Pets  
SET COMPATIBILITY_LEVEL = 150;

输出:

Commands completed successfully.

调用的数据库现在的兼容级别为 150。Pets

检查数据库兼容性级别

可以使用系统目录视图检查给定数据库或所有数据库的兼容性。sys.databases

下面是检查数据库的示例。Pets

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

输出:

+-----------------------+
| compatibility_level   |
|-----------------------|
| 150                   |
+-----------------------+

按产品划分的兼容性级别

下表显示了每个版本的 SQL Server 和 Azure SQL 数据库支持的兼容级别。

产品 数据库引擎版本 默认兼容级别指定 支持的兼容级别值
SQL Server 2019 (15.x) 15 150 150, 140, 130, 120, 110, 100
SQL Server 2017 (14.x) 14 140 140, 130, 120, 110, 100
Azure SQL Database 12 150 150, 140, 130, 120, 110, 100
Azure SQL 数据库托管实例 12 150 150, 140, 130, 120, 110, 100
SQL Server 2016 (13.x) 13 130 130, 120, 110, 100
SQL Server 2014 (12.x) 12 120 120, 110, 100
SQL Server 2012 (11.x) 11 110 110, 100, 90
SQL Server 2008 R2 10.5 100 100, 90, 80
SQL Server 2008 10 100 100, 90, 80
SQL Server 2005 (9.x) 9 90 90, 80
SQL Server 2000 (8.x) 8 80 80