SERVERPROPERTY (Transact-SQL)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
傳回有關伺服器執行個體的屬性資訊。
注意
Microsoft Entra ID 先前稱為 Azure Active Directory (Azure AD)。
語法
SERVERPROPERTY ( 'propertyname' )
重要
SQL Server 和 Azure SQL 資料庫的資料庫引擎版本號碼無法彼此相互比較,而顯示這些個別產品的內部組建編號。 Azure SQL Database 資料庫引擎是以和 SQL Server 資料庫引擎相同的程式碼基底作為基礎。 最重要的是,Azure SQL Database 資料庫引擎一律具有最新的 SQL 資料庫引擎位元。 例如,Azure SQL 資料庫版本 12 比 SQL Server 版本 16 更新。
引數
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 |
SQL Server 2019 (15.x) 從 CU 4 開始引進。 如果執行個體是 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 年末和 Azure SQL 受控執行個體 版的更新。 目前組建的更新層級。 CU 表示累積更新。 傳回下列其中一值: CUn = 累積更新 NULL = 不適用。 基底資料型別:nvarchar(128) |
ProductUpdateReference |
適用於:SQL Server 2012 (11.x) 至目前版本 (從 2015 晚期開始的更新)。 該版本的知識庫文章。 基底資料型別:nvarchar(128) |
ProductUpdateType |
適用於:Azure SQL 受控執行個體 更新執行個體遵循的頻率。 對應到 Azure SQL 受控執行個體更新原則。 傳回下列其中一值: CU = 透過對應主要 SQL Server 版本 的累積更新 (CU) 部署更新 (SQL Server 2022 更新原則)。 連續 = 新功能一旦可供使用,就會立即帶入 Azure SQL 受控執行個體,與 SQL Server 發行頻率無關 (一律保持最新的更新原則)。 基底資料型別: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 就會傳回新的名稱。
SERVERPROPERTY
函數的 ServerName
屬性會在儲存時傳回 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 版本所支援的功能清單,請參閱: