如何使用 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 |