ITエンジニアの成長ブログ

ITエンジニアとして行う勉強の発信&日々の生活で体験した楽しいことをゆるく発信

SQL Serverのデータベースの互換性レベルとは?

今回は、SQL Serverのデータベースの「互換性レベル」について調べたことを簡単に備忘として残したいと思います。

互換性レベルとは?

早速、互換性レベルについてですがまずは結論から。

互換性レベルとは、SQL Serverのバージョンごとの互換性を表す仕組みのことのようです。
通常ソフトウェアにはバージョン毎に互換性があったり、なかったりしますがそのような意味と同じようです。たとえば、互換性レベルはバージョンアップやリストア、バックアップに影響するようです。

そして、この互換性レベルごとにサポートされる機能などが変わってくるため、安易に変えてしまうとよくなさそうです。ここらへんの互換性レベルが変わることにより、何が起きるかは公式ページに記載がありますので適宜参照する必要がありそうです。
ALTER DATABASE 互換性レベル (Transact-SQL) - SQL Server | Microsoft Docs


SQL Serverのバージョン毎にサポートされる互換性レベルが決まっています。以下は、各SQL Serverでサポートされる互換性レベルが記載された場所を抜粋したものです。

SQL Server互換性レベルのサポート表

上記の表は以下のページから引用しました。
ALTER DATABASE 互換性レベル (Transact-SQL) - SQL Server | Microsoft Docs

互換性レベルの確認方法

それでは互換性レベルの確認方法を紹介します。

まずは、簡単にGUIで見る方法です。SSMSで該当のデータベースを選択し、右クリック - プロパティを選択します。するとデータベースのプロパティ画面が開きますので、「ページの選択」ペインのオプションを選択すると、画面上部に現在の互換性レベルが確認できます。

データベースのプロパティ - オプション欄

もちろん、SQLでも確認できます。以下のSQLを実行することで確認できます。引数は、確認するデータベース名に置き換えてください。

SELECT compatibility_level  
FROM sys.databases WHERE name = 'AdventureWorks2016';
SQLで互換性レベルを確認する。

互換性レベルの変更方法

あまり実施することはなさそうですが、互換性レベルの変更方法も紹介します。SQLで実施する場合は以下のようになります。SSMSで実施する場合は、先ほど確認した画面で互換性レベルのところがプルダウンになっていて簡単に変更できるようになっています。

ALTER DATABASE AdventureWorks2016
SET COMPATIBILITY_LEVEL = 120;  

まとめ

いかがでしたでしょうか。普段意識することはないかもしれません。データベースの移行とかで必要な知識になりそうですね。ちょっと頭の隅にでもおいておこうと思います。

最後までお読みいただきありがとうございました。今回はこの辺で失礼いたします。