SERVERPROPERTY (Transact-SQL)

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

サーバー インスタンスについてのプロパティ情報を返します。

Transact-SQL 構文表記規則

Note

Microsoft Entra ID の、旧称は Azure Active Directory(Azure AD)です。

構文

SERVERPROPERTY ( 'propertyname' )

重要

SQL Server と Azure SQL データベース の データベース エンジン バージョン番号は類似のものではありません。別個の製品に与えられる内部製造番号を表しています。 Azure SQL データベース の データベース エンジン は、SQL Server データベース エンジン と同じコード ベースに基づいています。 最も重要なのは、Azure SQL データベース の データベース エンジン には常に最新の SQL データベース エンジン ビットがあることです。 たとえば、Azure SQL Database のバージョン 12 は SQL Server のバージョン 16 より新しくなっています。

引数

propertyname

サーバーについて返されるプロパティ情報を含む式。 propertyname 値は次のいずれかを指定することができます。 無効か、そのバージョンのデータベース エンジンでサポートされていない propertyname を使用すると、NULL が返されます。

プロパティ 返される値
BuildClrVersion SQL Server のインスタンスのビルド時に使われた Microsoft .NET Framework 共通言語ランタイム (CLR) のバージョン。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: nvarchar(128)
Collation サーバーの既定の照合順序の名前。

NULL = 無効な入力またはエラー。

基本データ型: nvarchar(128)
CollationID SQL Server 照合順序の ID。

基本データ型: int
ComparisonStyle 照合順序の Windows 比較形式。

基本データ型: int
ComputerNamePhysicalNetBIOS SQL Server のインスタンスが現在実行されているローカル コンピューターの NetBIOS 名。

フェールオーバー クラスターの SQL Server クラスター化インスタンスでは、SQL Server インスタンスがフェールオーバー クラスターの他のノードにフェールオーバーすると、この値が変わります。

SQL Server スタンドアロン インスタンスではこの値は変わらず、MachineName プロパティと同じ値が返されます。

注: SQL Server のインスタンスがフェールオーバー クラスター内にある場合に、フェールオーバー クラスター インスタンスの名前を取得するには、MachineName プロパティを使用します。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: nvarchar(128)
Edition SQL Server インスタンスのインストールされている製品のエディション。 機能や制限 (SQL Server のエディション別の計算容量制限など) は、このプロパティの値を使用して調べます。 このバージョン (64 ビット) には、64 ビット バージョンのデータベース エンジンが追加されています。

戻り値:

'Enterprise Edition'

'Enterprise Edition:Core-based Licensing'

'Enterprise Evaluation Edition'

'Business Intelligence Edition'

'Developer Edition'

'Express Edition'

'Express Edition with Advanced Services'

'Standard Edition'

'Web Edition'

'SQL Azure' は SQL Database または Azure Synapse Analytics を示します

'Azure SQL Edge Developer' は、Azure SQL Edge の開発専用エディションを示します

'Azure SQL Edge' は、Azure SQL Edge の有料エディションを示します

基本データ型: nvarchar(128)
EditionID EditionID は、SQL Server のインスタンスについて、インストールされている製品のエディションを表します。 機能や制限 (SQL Server のエディション別の計算容量制限など) は、このプロパティの値を使用して調べます。

1804890536 = Enterprise

1872460670 = Enterprise Edition:Core-based Licensing

610778273 = Enterprise Evaluation

284895786 = Business Intelligence

-2117995310 = Developer

-1592396055 = Express

-133711905 = Express with Advanced Services

-1534726760 = Standard

1293598313 = Web

1674378470 = SQL Database または Azure Synapse Analytics

-1461570097 = Azure SQL Edge Developer

1994083197 = Azure SQL Edge

基本データ型: bigint
EngineEdition サーバーにインストールされている データベース エンジン インスタンスのSQL Serverのエディション。

1 = Personal または Desktop Engine (SQL Server 2005 (9.x) 以降のバージョンでは使用できません)

2 = Standard (Standard、Web、および Business Intelligence の場合)

3 = Enterprise (Evaluation、Developer、Enterprise エディションの場合)

4 = Express (Express、Express with Tools、Express with Advanced Services の場合)

5 = SQL Database

6 = Azure Synapse Analytics

8 = Azure SQL Managed Instance

9 = Azure SQL Edge (Azure SQL Edge のすべてのエディションの場合)

11 = Azure Synapse サーバーレス SQL プール

基本データ型: int
FilestreamConfiguredLevel FILESTREAM アクセスの構成されているレベル。 詳細については、「filestream のアクセス レベル」を参照してください。

0 = FILESTREAM が無効です

1 = Transact-SQL アクセスに対して FILESTREAM が有効になっています

2 = Transact-SQL およびローカルの Win32 ストリーミング アクセスに対して FILESTREAM が有効になっています

3 = Transact-SQL およびローカルとリモートの両方の Win32 ストリーミング アクセスに対して FILESTREAM が有効になっています

基本データ型: int
FilestreamEffectiveLevel FILESTREAM アクセスの有効なレベル。 レベルが変更されており、インスタンスの再起動またはコンピューターの再起動のいずれかが保留されている場合、この値は FilestreamConfiguredLevel と異なることがあります。 詳細については、「filestream のアクセス レベル」を参照してください。

0 = FILESTREAM が無効です

1 = Transact-SQL アクセスに対して FILESTREAM が有効になっています

2 = Transact-SQL およびローカルの Win32 ストリーミング アクセスに対して FILESTREAM が有効になっています

3 = Transact-SQL およびローカルとリモートの両方の Win32 ストリーミング アクセスに対して FILESTREAM が有効になっています

基本データ型: int
FilestreamShareName FILESTREAM で使用される共有の名前。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: nvarchar(128)
HadrManagerStatus 適用対象: SQL Server 2012 (11.x) 以降。

Always On 可用性グループ マネージャーが開始されたかどうかを示します。

0 = 未開始状態、通信保留中

1 = 開始されて実行中

2 = 未開始状態、失敗

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int
InstanceDefaultBackupPath 適用対象: SQL Server 2019 (15.x) 以降。

インスタンス バックアップ ファイルの既定のパスの名前。
InstanceDefaultDataPath 適用対象: SQL Server 2012 (11.x) から 2015 年後半以降の更新プログラムの現在のバージョン。

インスタンス データ ファイルの既定のパスの名前。

基本データ型: nvarchar(128)
InstanceDefaultLogPath 適用対象: SQL Server 2012 (11.x) から 2015 年後半以降の更新プログラムの現在のバージョン。

インスタンス ログ ファイルの既定のパスの名前。

基本データ型: nvarchar(128)
InstanceName ユーザーの接続先のインスタンス名。

インスタンス名が既定インスタンスの場合や、無効な入力またはエラーの場合は、NULL が返されます。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: nvarchar(128)
IsAdvancedAnalyticsInstalled セットアップ時に Advanced Analytics 機能がインストールされた場合は 1 を返します。Advanced Analytics がインストールされていない場合は 0 を返します。

基本データ型: int
IsBigDataCluster SQL Server 2019 (15.x) の CU 4 から導入されました。

インスタンスが SQL Server ビッグ データ クラスターの場合は 1 を返し、ビッグ データ クラスターではない場合は 0 を返します。

基本データ型: int
IsClustered サーバー インスタンスがフェールオーバー クラスターで構成されます。

1 = クラスター化

0 = 非クラスター化

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int
IsExternalAuthenticationOnly 適用対象: Azure SQL Database と Azure SQL Managed Instance。

Microsoft Entra 専用認証が有効かどうかを返します。

1 = Microsoft Entra 専用認証を有効にする。

0 = Microsoft Entra 専用認証を無効にする。

基本データ型: int
IsExternalGovernanceEnabled 適用対象: SQL Server 2022 (16.x) 以降。

Microsoft Purview アクセス ポリシーを有効にするかどうかを返します。

1 = 外部ガバナンスが有効になっています。

0 = 外部ガバナンスが無効になっています。

基本データ型: int
IsFullTextInstalled SQL Server の現在のインスタンスに、フルテキスト インデックス作成およびセマンティック インデックス作成のコンポーネントがインストールされています。

1 = フルテキスト インデックス作成およびセマンティック インデックス作成のコンポーネントがインストールされています。

0 = フルテキスト インデックス作成およびセマンティック インデックス作成のコンポーネントがインストールされていません。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int
IsHadrEnabled 適用対象: SQL Server 2012 (11.x) 以降。

Always On 可用性グループは、このサーバー インスタンス上で有効です。

0 = Always On 可用性グループ機能は無効です。

1 = Always On 可用性グループ機能は有効です。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int

SQL Server のインスタンスで可用性レプリカを作成して実行するには、サーバー インスタンス上で Always On 可用性グループが有効になっている必要があります。 詳細については、Always On 可用性グループの有効化と無効化 (SQL Server) に関する記事を参照してください。

注: IsHadrEnabled プロパティは、Always On 可用性グループ のみに関連します。 データベース ミラーリングやログ配布などの、その他の高可用性機能およびディザスター リカバリー機能は、このサーバー プロパティの影響を受けません。
IsIntegratedSecurityOnly サーバーは統合セキュリティ モードです。

1 = 統合セキュリティ (Windows 認証)

0 = 非統合セキュリティ (Windows 認証と SQL Server 認証の両方)。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int
IsLocalDB 適用対象: SQL Server 2012 (11.x) 以降。

サーバーは SQL Server Express LocalDB のインスタンスです。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int
IsPolyBaseInstalled 適用対象: SQL Server 2016 (13.x)

サーバー インスタンスに PolyBase 機能がインストールされているかどうかを返します。

0 = PolyBase はインストールされていません。

1 = Polybase はインストールされています。

基本データ型: int
IsServerSuspendedForSnapshotBackup サーバーは中断モードであり、サーバー レベルの解放が必要です。

1 = 中断。

0 = 中断されていない

基本データ型: int
IsSingleUser サーバーはシングル ユーザー モードです。

1 = シングル ユーザー

0 = 非シングル ユーザー

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int
IsTempDbMetadataMemoryOptimized 適用対象: SQL Server 2019 (15.x) 以降。

メタデータに対してメモリ最適化テーブルを使用するように tempdb が有効になっている場合は、1 を返します。メタデータに対して通常のディスク ベースのテーブルが tempdb によって使用されている場合は 0 になります。 詳細については、「 tempdb Database」をご覧ください。

基本データ型: int
IsXTPSupported 適用対象:SQL Server (SQL Server 2014 (12.x) 以降)、SQL Database。

サーバーは、インメモリ OLTP をサポートします。

1 = サーバーはインメモリ OLTP をサポートします。

0 = サーバーはインメモリ OLTP をサポートしません。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int
LCID 照合順序の Windows ロケール識別子 (LCID)。

基本データ型: int
LicenseType 未使用。 ライセンス情報は SQL Server 製品によって保存または維持されていません。 常に DISABLED が返されます。

基本データ型: nvarchar(128)
MachineName サーバー インスタンスが稼働している Windows コンピューターの名前。

クラスター化インスタンスの場合、つまり、Microsoft Cluster Service 上の仮想サーバーで稼働している SQL Server のインスタンスの場合は、仮想サーバーの名前が返されます。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: nvarchar(128)
NumLicenses 未使用。 ライセンス情報は SQL Server 製品によって保存または維持されていません。 常に NULL が返されます。

基本データ型: int
PathSeparator 適用対象: SQL Server 2017 (14.x) 以降。

Windows では \ を、Linux では / を返します

基本データ型: nvarchar
ProcessID SQL Server サービスのプロセス ID。 このインスタンスに属する Sqlservr.exe を識別するときに、ProcessID は効果的です。

NULL = 無効な入力、エラー、または該当なし。

基本データ型: int
ProductBuild 適用対象: 2015 年 10 月以降の SQL Server 2014 (12.x)。

ビルド番号です。

基本データ型: nvarchar(128)
ProductBuildType 適用対象: SQL Server 2012 (11.x) から 2015 年後半以降の更新プログラムの現在のバージョン。

現在のビルドのビルドの種類です。

次の値のいずれか。

OD = 特定の顧客のオンデマンド リリース。

GDR = Windows Update を介してリリースされた一般配布リリース。

NULL = 適用なし。

基本データ型: nvarchar(128)
ProductLevel SQL Server インスタンスのバージョンのレベルです。

次の値のいずれか。

'RTM' = オリジナル リリース バージョン

'SPn' = サービス パックのバージョン

'CTPn', = Community Technology Preview のバージョン

基本データ型: nvarchar(128)
ProductMajorVersion 適用対象: SQL Server 2012 (11.x) から 2015 年後半以降の更新プログラムの現在のバージョン。

メジャー バージョン。

基本データ型: nvarchar(128)
ProductMinorVersion 適用対象: SQL Server 2012 (11.x) から 2015 年後半以降の更新プログラムの現在のバージョン。

マイナー バージョン。

基本データ型: nvarchar(128)
ProductUpdateLevel 適用対象: SQL Server 2012 (11.x) から現在のバージョンまでの 2015 年後半および Azure SQL Managed Instance 以降の更新プログラム。

現在のビルドのレベルを更新します。 CU は累積更新を示します。

次の値のいずれか。

CUn = 累積更新プログラム

NULL = 適用なし。

基本データ型: nvarchar(128)
ProductUpdateReference 適用対象: SQL Server 2012 (11.x) から 2015 年後半以降の更新プログラムの現在のバージョン。

そのリリースのサポート技術情報の記事です。

基本データ型: nvarchar(128)
ProductUpdateType 適用対象: Azure SQL Managed Instance

インスタンスが従う更新の周期。 Azure SQL Managed Instance の更新ポリシーに対応します。

次の値のいずれか。

CU = 更新は、対応する主要な SQL Server リリース (SQL Server 2022 更新ポリシー) の累積更新プログラム (CU) を使用して展開されます。

継続的 = 新しい機能は、SQL Server リリース周期 (Always-up-to-date 更新ポリシー) とは無関係に、使用可能になるとすぐに Azure SQL Managed Instance に取り込まれます。

基本データ型: nvarchar(128)
ProductVersion SQL Server のインスタンスのバージョン (major.minor.build.revision 形式)。

基本データ型: nvarchar(128)
ResourceLastUpdateDateTime リソース データベースが最後に更新された日時を返します。

基本データ型: datetime
ResourceVersion リソース データベースのバージョンを返します。

基本データ型: nvarchar(128)
ServerName SQL Server の特定のインスタンスに関連付けられている Windows サーバーとインスタンスの情報。

NULL = 無効な入力またはエラー。

基本データ型: nvarchar(128)
SqlCharSet 照合順序 ID の SQL 文字セット ID。

基本データ型: tinyint
SqlCharSetName 照合順序の SQL 文字セットの名前。

基本データ型: nvarchar(128)
SqlSortOrder 照合順序の SQL 並べ替え順序 ID。

基本データ型: tinyint
SqlSortOrderName 照合順序の SQL 並べ替え順序の名前。

基本データ型: nvarchar(128)
SuspendedDatabaseCount サーバー上で中断されているデータベースの数。

基本データ型: int

戻り値の型

sql_variant

解説

ServerName プロパティ

SERVERPROPERTY 関数の ServerName プロパティと @@SERVERNAME は、同様の情報を返します。 ServerName プロパティが返す Windows サーバーとインスタンス名を合わせることで、一意なサーバー インスタンスが形成されます。 @@SERVERNAME は、現在構成されているローカル サーバー名を返します。

インストール時の既定のサーバー名から変更されていない場合、ServerName プロパティと @@SERVERNAME は、同じ情報を返します。 ローカル サーバー名は次のストアド プロシージャを実行することによって構成できます。

EXEC sp_dropserver 'current_server_name';
GO
EXEC sp_addserver 'new_server_name', 'local';
GO

ローカル サーバー名がインストール時の既定のサーバー名から変更されている場合、@@SERVERNAME は新しい名前を返します。

SERVERPROPERTY 関数の ServerName プロパティは、保存時の Windows サーバー名を返します。 前のメジャー バージョンでは、大文字が返されました。 この動作変更は、SQL Server 2019 (15.x) CU 9 から CU 12 までは大文字に戻されていましたが、SQL Server 2019 (15.x) CU 13 以降ではサーバー名が保存された状態のまま返されます。

Windows サーバー名に小文字が含まれている場合、この動作の変更により、サーバーの名前を変更していない場合でも、SERVERPROPERTY 関数の ServerName プロパティと @@SERVERNAME が異なる可能性があります (大文字と小文字の違い)。

サーバーの名前が server01、SQL Server インスタンスの名前が INST1 であるとします。 次の表は、SQL Server 2019 (15.x) の異なるビルド間での動作の違いをまとめたものです。

SQL Server 2019 (15.x) リリース SERVERPROPERTY('ServerName') 関連情報
RTM SERVER01\INST1 ServerName プロパティを大文字で返します
CU 1 – CU 8 server01\INST1 大文字に変更せずに、ServerName プロパティをそのまま返します
CU 9 – CU 12 SERVER01\INST1 ServerName プロパティを大文字で返します
CU 13 以降のバージョン server01\INST1 大文字に変更せずに、ServerName プロパティをそのまま返します

Version のプロパティ

SERVERPROPERTY 関数は、バージョン情報に関連する個別のプロパティを返します。一方で、@@VERSION 関数は、出力を 1 つの文字列に結合します。 アプリケーションで個別のプロパティ文字列が必要な場合は、@@VERSION の結果を解析する代わりに、SERVERPROPERTY 関数を使用すると、そのような個別のプロパティ文字列を返すことができます。

アクセス許可

すべてのユーザーは、サーバーのプロパティをクエリできます。

次の例では、SELECT ステートメント内で SERVERPROPERTY 関数を使用することによって、SQL Server の現在のインスタンスに関する情報を返します。

SELECT
 SERVERPROPERTY('MachineName') AS ComputerName,
 SERVERPROPERTY('ServerName') AS InstanceName,
 SERVERPROPERTY('Edition') AS Edition,
 SERVERPROPERTY('ProductVersion') AS ProductVersion,
 SERVERPROPERTY('ProductLevel') AS ProductLevel;
GO

Windows の SQL Server の各エディションでサポートされる機能の一覧については、以下を参照してください。