SERVERPROPERTY (Transact-SQL)

適用対象: SQL Server (サポートされているすべてのバージョン) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

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

Transact-SQL 構文表記規則

構文

SERVERPROPERTY ( 'propertyname' )

重要

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

Note

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

propertyname

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

プロパティ 返される値
BuildClrVersion Microsoft インスタンスの構築時に使用された .NET FrameworkSQL Server 共通言語ランタイム (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 または Microsoft 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 = Microsoft Azure Synapse Analytics

8 = Azure SQL Managed Instance

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

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

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

基本データ型: int
FilestreamEffectiveLevel FILESTREAM アクセスの有効なレベル。 レベルが変更されており、インスタンスの再起動またはコンピューターの再起動のいずれかが保留されている場合、この値は FilestreamConfiguredLevel と異なることがあります。 詳細については、「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 CU4 から始まった SQL Server 2019 (15.x) で導入されました。

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

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

1 = クラスター化

0 = 非クラスター化

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

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

Azure AD のみの認証が有効かどうかを返します。

1 = Azure AD のみの認証が有効です。

0 = Azure AD のみの認証が無効です。

基本データ型: 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 年後半以降の更新プログラムの現在のバージョン。

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

次の値のいずれか。

CUn = 累積更新プログラム

NULL = 適用なし。

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

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

基本データ型: 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) CU9 から CU12 までは大文字に戻されていましたが、SQL Server 2019 (15.x) CU13 以降ではサーバー名が保存された状態のまま返されます。

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

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

SQL Server 2019 (15.x) リリース SERVERPROPERTY('ServerName') 関連情報
RTM SERVER01\INST1 ServerName プロパティを大文字で返します
CU1 – CU8 server01\INST1 大文字に変更せずに、ServerName プロパティをそのまま返します
CU9 – CU12 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

関連項目