SQL Serverでは、ALTER DATABASE
を使用できます。 データベースの互換性レベルを変更するステートメント。
これは、以前のバージョンのSQL Serverで作成されたデータベースがあるが、新しい互換性レベルでのみ使用できる機能を使用する必要がある場合に役立ちます。
たとえば、OPENJSON()
機能は互換性レベル130以上でのみ使用できます。 SQL Serverのインストールでこの互換性レベルがサポートされている場合でも、より低い互換性レベルを使用するデータベースを使用できます。この場合、OPENJSON()
を使用する場合 これらのデータベースに対しては、互換性レベルを130以上に上げる必要があります。
例
データベースの互換性を変更するコードの例を次に示します。
ALTER DATABASE Pets
SET COMPATIBILITY_LEVEL = 150;
結果:
Commands completed successfully.
Pets
というデータベース 現在、互換性レベルは150です。
データベースの互換性レベルを確認する
sys.databases
を使用できます 特定のデータベースまたはすべてのデータベースの互換性を確認するためのシステムカタログビュー。
Pets
を確認する例を次に示します。 データベース。
SELECT compatibility_level
FROM sys.databases
WHERE name = 'Pets';
結果:
+-----------------------+ | compatibility_level | |-----------------------| | 150 | +-----------------------+
製品別の互換性レベル
これは、SQLServerとAzureSQLDatabaseの各エディションでサポートされている互換性レベルを示す表です。
製品 | データベースエンジンのバージョン | デフォルトの互換性レベルの指定 | サポートされている互換性レベルの値 |
---|---|---|---|
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 |
AzureSQLデータベース | 12 | 150 | 150、140、130、120、110、100 |
AzureSQLデータベース管理対象インスタンス | 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 |