SQL Database のバージョンを確認する際に「SELECT @@VERSEION」で確認をすることがあるのではないでしょうか。
![]()
SQL Database v12 になってからは、「12.x」のバージョンを返すようになっており、「SQL Database は、バージョンを確認すると 12 となっていますが、最新の SQL Server と同等のバージョンが使用されています」というような説明をすることがあります。
この見え方は、Managed Instance も同じになるのですが、このバージョンを返しているのは、おそらくフロントになっているゲートウェイのバージョンになるのかと。
MySQL 側には、サポートされている Azure Database for MySQL サーバー バージョン で次のように、記載されているのですが、おそらく仕組みは同じかと。
注意
サービスでは、接続をサーバー インスタンスにリダイレクトするためにゲートウェイが使用されます。 接続が確立すると、MySQL には、MySQL サーバー インスタンスで実行されている実際のバージョンではなく、ゲートウェイに設定されている MySQL のバージョンが表示されます。 MySQL サーバー インスタンスのバージョンを判断するには、MySQL プロンプトで SELECT VERSION(); コマンドを使用します。
SQL Database / MI でデータベースエンジンの正確なバージョンを取得したいと思った場合、SSMS で次のクエリを実行して取得するのが手っ取り早いのかなと。
SET SHOWPLAN_XML ON GO SELECT 1
実行すると結果のグリッドに XML のリンクが表示されますので、それをクリックして、実行プランのグラフィカル表示を開いてから、「実行プランの XML の表示」をクリックして、
![]()
表示された、XML のヘッダ部分の Build を確認すると Database Engine のバージョン情報が確認できるかと。
![]()
オンプレミスの最新は、SQL Server 2017 の「14.x」なのですが、SQL Database は「15.x」という SQL Server より進んだ次の Database Engine が使用されていることが確認できますね。
MI の場合は、こちら。
![]()
SQL Database の方が少し進んでいますね。
MI のバックアップが SQL Server 2017 にリストアすることができないのも、この辺のバージョンの違い (MI の方が進んでいる) に起因しているのですが、見方を知っていると面白いかなと。