SERVERPROPERTY (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

傳回有關伺服器執行個體的屬性資訊。

Transact-SQL 語法慣例

注意

Microsoft Entra 標識符 先前稱為 Azure Active Directory (Azure AD)。

語法

SERVERPROPERTY ( 'propertyname' )

重要

SQL Server 和 Azure SQL 資料庫 的 資料庫引擎 版本號碼彼此不相提並論,並代表這些個別產品的內部組建編號。 Azure SQL Database 資料庫引擎是以和 SQL Server 資料庫引擎相同的程式碼基底作為基礎。 最重要的是,Azure SQL Database 資料庫引擎一律具有最新的 SQL 資料庫引擎位元。 例如,第 12 版的 Azure SQL 資料庫 比 SQL Server 第 16 版還新。

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

propertyname

包含要傳回伺服器之屬性資訊的運算式。 propertyname 可以是下列值之一。 使用該資料庫引擎版本上無效或不支援的 propertyname 將會傳回 NULL

屬性 傳回的值
BuildClrVersion 建置 SQL Server 執行個體時所用的 Microsoft .NET Framework Common Language Runtime (CLR) 版本。

NULL = 輸入無效、發生錯誤或不適用。

基底資料型別:nvarchar(128)
Collation 伺服器預設定序的名稱。

NULL = 輸入無效,或發生錯誤。

基底資料型別:nvarchar(128)
CollationID SQL Server 定序的識別碼。

基底資料類型: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 版:核心授權」

'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:核心授權

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 開發人員

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 受控執行個體

9 = Azure SQL Edge (適用於 Azure SQL Edge 的所有版本)

11 = Azure Synapse 無伺服器 SQL 集區

基底資料類型:int
FilestreamConfiguredLevel 已設定的 FILESTREAM 存取層級。 如需詳細資訊,請參閱檔案資料流存取層級

0 = FILESTREAM 已停用

1 = 啟用 TRANSact-SQL 存取的 FILESTREAM

2 = 啟用 Transact-SQL 和本機 Win32 串流存取的 FILESTREAM

3 = 啟用 Transact-SQL 和本機和遠端 Win32 串流存取的 FILESTREAM

基底資料類型:int
FilestreamEffectiveLevel 有效的 FILESTREAM 存取層級。 如果此層級已變更而且執行個體重新啟動或電腦重新啟動已暫止,這個值就可能會與 FilestreamConfiguredLevel 不同。 如需詳細資訊,請參閱檔案資料流存取層級

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 若在設定時已安裝 [進階分析] 功能,則會傳回 1;否則會傳回 0。

基底資料類型:int
IsBigDataCluster 從 CU 4 開始,於 SQL Server 2019 (15.x) 中引進。

如果執行個體是 SQL Server 巨量資料叢集,則傳回 1;否則傳回 0。

基底資料類型:int
IsClustered 伺服器執行個體設定在容錯移轉叢集中。

1 = 叢集。

0 = 非叢集。

NULL = 輸入無效、發生錯誤或不適用。

基底資料類型:int
IsExternalAuthenticationOnly 適用於:Azure SQL Database 與 Azure SQL 受控執行個體。

傳回是否 啟用僅限 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) 和更新版本。

伺服器是 LocalDB SQL Server Express 執行個體。

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。

伺服器支援 In-Memory OLTP。

1 = 伺服器支援 In-Memory OLTP。

0 = 伺服器不支援 In-Memory 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 服務的處理序識別碼。 在識別哪個 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' = Service Pack 版本

'CTPn', = Community Technical 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 定序識別碼中的 SQL 字元集識別碼。

基底資料型別:tinyint
SqlCharSetName 定序中的 SQL 字元集名稱。

基底資料型別:nvarchar(128)
SqlSortOrder 定序中的 SQL 排序順序識別碼

基底資料型別: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 就會傳回新的名稱。

ServerName 式的 SERVERPROPERTY 屬性會在儲存時傳回 Windows 伺服器名稱。 在先前的主要版本中,該屬性會傳回大寫。 此行為已變更回 SQL Server 2019 (15.x) CU 9 和 CU 12 之間的大寫,但從 SQL Server 2019 (15.x) CU 13 開始,伺服器名稱會傳回儲存時。

如果 Windows 伺服器名稱包含任何小寫字元,則此行為變更可能會導致函式的 屬性SERVERPROPERTY與@@SERVERNAME(大寫與小寫)之間的差異ServerName,即使伺服器沒有名稱變更也一樣。

假設您有名為 server01 的伺服器,且具有名為 INST1 的 SQL Server 執行個體。 下表摘要說明 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 屬性,而不變更為大寫

版本屬性

SERVERPROPERTY 函式會傳回與版本資訊相關的個別屬性,而 @@VERSION 函式則會將輸出結合成一個字串。 若您的應用程式需要個別屬性字串,您可以使用 SERVERPROPERTY 函式傳回,而非剖析 @@VERSION 的結果。

權限

所有使用者都可以查詢伺服器屬性。

範例

下列範例會使用 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

如需 SQL Server 版本所支援的功能清單,請參閱: