SQLServer 基礎

[SQLServer] SQLServerのバージョンとエディションを調べる

SQLServerのバージョンとエディションを調べるには、SERVERPROPERTY関数を使用します。

@@VERSIONでもバージョン情報付きの文字列をまとめて取得できますが、SERVERPROPERTYを使うと、バージョン番号やエディション名などを個別の値として取得できます。

構文

(SERVERPROPERTY構文)
SERVERPROPERTY ( '<プロパティ名>' )

戻り値の型はsql_variant型です。文字列として扱う場合はCONVERT関数などで型変換してください。

サンプル

例)バージョン番号を取得する

(実行結果)
16.0.1000.6

「メジャーバージョン.マイナーバージョン.ビルド番号.リビジョン」の形式で返ります。

例)Service Pack/累積更新プログラムの適用状況を取得する

(実行結果)
ProductLevel: RTM  ProductUpdateLevel: CU12

SQLServer 2017以降は、ProductLevelが常に「RTM」を返す代わりに、ProductUpdateLevelで累積更新プログラム(CU)の適用状況が分かるようになっています。SQLServer 2016以前ではProductLevelに「SP1」のようにService Packの状態が入ります。

例)エディション名を取得する

(実行結果)
Developer Edition (64-bit)

例)エディションを数値コードで取得する

(実行結果)
3

EngineEditionの数値が示すエディション区分は以下のとおりです。

エディション区分
2Standard(Web、Business Intelligenceを含む)
3Enterprise(Evaluation、Developerを含む)
4Express
5SQL Database(Azure SQL Database)
8Managed Instance(Azure SQL Managed Instance)

アプリケーション側でエディションによって処理を分岐させたい場合、Edition(文字列)よりもEngineEdition(数値)で判定するほうが、表記ゆれの影響を受けず確実です。

例)主要な情報をまとめて取得する

備考

  • 1つの文字列としてまとめて確認したい場合は、@@VERSIONも使用できます。
    [SQLServer] SQLServerのバージョンを取得する(@@VERSION)
  • SQL Server Management Studio(SSMS)を使う場合は、オブジェクトエクスプローラーでサーバーに接続した際の表示名や、サーバーを右クリックして「プロパティ」を開いた画面でも、バージョンとエディションを確認できます。
  • サーバー名を調べたい場合は、@@SERVERNAMEが使用できます。
    [SQLServer] サーバ名を取得する(@@SERVERNAME)
  • Azure SQL DatabaseやAzure SQL Managed Instanceなど、Azure上のサービスでは、SERVERPROPERTYの各プロパティが返す値が、オンプレミス版のSQLServerとは異なる場合があります。

関連記事

-SQLServer, 基礎