sql >> データベース >  >> RDS >> Sqlserver

T-SQLを使用してデータベースの互換性レベルを変更する方法

    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

    1. MySQL:ストアドプロシージャ内のトランザクション

    2. Oracle11gデータベースにリモートで接続する方法

    3. Oracleプロシージャでテーブルを切り捨てる方法は?

    4. PostgreSQL:PostgreSQLでテーブルを表示する