SERVERPROPERTY (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics分析平台系统 (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库Microsoft Fabric 预览版中的 SQL 数据库

返回有关服务器实例的属性信息。

Transact-SQL 语法约定

Note

Microsoft Entra ID 以前称为 Azure Active Directory (Azure AD)。

Syntax

SERVERPROPERTY ( 'propertyname' )

Important

SQL Server 和 Azure SQL 数据库和 Microsoft Fabric 的数据库引擎版本号彼此不相提并论,并表示这些单独的产品的内部内部内部版本号。 Azure SQL 数据库 的 数据库引擎 基于与 SQL Server 数据库引擎 相同的基本代码。 最重要的是,Azure SQL 数据库 中的 数据库引擎 始终具有最新的 SQL 数据库引擎 位。 例如,Azure SQL 数据库版本 12 比 SQL Server 版本 16 新。

Arguments

propertyname

一个表达式,包含要为服务器返回的属性信息。 propertyname 可以是以下值之一。 使用该版本的数据库引擎返回无效或不支持NULL

Property 返回的值
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 位)。

使用以下 Edition 表 标识可能的值。

基本数据类型:nvarchar(128)
EditionID 表示 SQL Server 实例的已安装产品版本的 ID。 使用该属性的值确定功能和限制,例如按 SQL Server 版本划分的计算能力限制

使用以下 Edition 表 标识可能的值。

基本数据类型:bigint
EngineEdition 服务器上安装的 数据库引擎 实例的SQL Server版本。

1 = Personal 或 Desktop Engine(不适用于 SQL Server 2005 (9.x) 和更高版本。)
2 = 标准版(标准版、标准开发人员版、Web 版和商业智能版)。
3 = 企业版、企业开发人员版、开发人员版和评估版。
4 = Express(适用于 Express、Express with Tools 和 Express with Advanced Services)
5 = SQL 数据库
6 = Azure Synapse Analytics
8 = Azure SQL 托管实例
9 = Azure SQL Edge(适用于 Azure SQL Edge 的所有版本)
11 = Azure Synapse 无服务器 SQL 池或 Microsoft Fabric
12 = Microsoft Fabric Preview 中的 Microsoft Fabric SQL 数据库。

基本数据类型:int
FilestreamConfiguredLevel FILESTREAM 访问的配置级别。 有关详细信息,请参阅文件流访问级别

0 = FILESTREAM 已禁用
1 = 针对 Transact-SQL 访问启用 FILESTREAM
2 = 针对 Transact-SQL 访问和本地 Win32 流访问启用 FILESTREAM
3 = 为 Transact-SQL 启用 FILESTREAM,同时启用本地和远程 Win32 流访问。

基本数据类型:int
FilestreamEffectiveLevel FILESTREAM 访问的有效级别。 如果级别已更改,并且实例重新启动或计算机重新启动处于挂起状态,则该值可以不同于 FilestreamConfiguredLevel。 有关详细信息,请参阅文件流访问级别

0 = FILESTREAM 已禁用
1 = 针对 Transact-SQL 访问启用 FILESTREAM
2 = 针对 Transact-SQL 访问和本地 Win32 流访问启用 FILESTREAM
3 = 为 Transact-SQL 启用 FILESTREAM,同时启用本地和远程 Win32 流访问。

基本数据类型:int
FilestreamShareName FILESTREAM 使用的共享的名称。

NULL = 输入无效、错误或不适用。

基本数据类型:nvarchar(128)
HadrManagerStatus 指示 Always On 可用性组管理器是否已启动。

0 = 未启动,通信挂起。
1 = 已启动,正在运行。
2 = 未启动,已失败。
NULL = 输入无效、错误或不适用。

基本数据类型:int
InstanceDefaultBackupPath 实例备份文件的默认路径的名称。

适用于:SQL Server 2019 (15.x) 及更高版本。

基本数据类型:nvarchar(128)
InstanceDefaultDataPath 实例数据文件的默认路径的名称。

适用于:SQL Server。

基本数据类型:nvarchar(128)
InstanceDefaultLogPath 实例日志文件的默认路径的名称。

适用于:SQL Server。

基本数据类型: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 返回是否已启用“仅限 Microsoft Entra 身份验证”。

1 =“仅限 Microsoft Entra 身份验证”已启用。
0 =“仅限 Microsoft Entra 身份验证”已禁用。

适用范围:Azure SQL 数据库和 Azure SQL 托管实例。

基本数据类型:int
IsExternalGovernanceEnabled 返回是否启用 Microsoft Purview 访问策略

1 = 已启用外部治理。
0 = 已禁用外部治理。

适用于:SQL Server 2022(16.x)及更高版本。

基本数据类型:int
IsFullTextInstalled 全文和语义索引组件安装在 SQL Server 的当前实例上。

1 = 已安装全文和语义索引组件。
0 = 未安装全文和语义索引组件。
NULL = 输入无效、错误或不适用。

基本数据类型:int
IsHadrEnabled 在此服务器实例上启用 Always On 可用性组。

0 = Always On 可用性组 功能已禁用。
1 = Always On 可用性组 功能已启用。
NULL = 输入无效、错误或不适用。

要创建可用性副本并使该副本在 SQL Server 实例上运行,必须在该服务器实例上启用 Always On 可用性组。 有关详细信息,请参阅 启用或禁用 AlwaysOn 可用性组功能

注意:IsHadrEnabled 属性仅适用于 AlwaysOn 可用性组。 其他高可用性或灾难恢复功能(如数据库镜像或日志传送)都不受此服务器属性影响。

适用于:SQL Server。

基本数据类型:int
IsIntegratedSecurityOnly 服务器处于集成安全性模式下。

1 = 集成安全性(Windows 身份验证)
0 = 非集成安全性。 (Windows 身份验证和 SQL Server 身份验证。)
NULL = 输入无效、错误或不适用。

基本数据类型:int
IsLocalDB 服务器是 SQL Server Express LocalDB 的实例。

NULL = 输入无效、错误或不适用。

适用于:SQL Server。

基本数据类型:int
IsPolyBaseInstalled 返回服务器实例是否安装了 PolyBase 功能的结果。

0 = 未安装 PolyBase。
1 = 安装了 PolyBase。

适用于:SQL Server 2016(13.x)及更高版本。

基本数据类型:int
IsServerSuspendedForSnapshotBackup 服务器处于挂起模式,需要服务器级别解冻。

1 = 已挂起。
0 = 未挂起。

基本数据类型:int
IsSingleUser 服务器处于单用户模式下。

1 = 单个用户。
0 = 非单个用户
NULL = 输入无效、错误或不适用。

基本数据类型:int
IsTempDbMetadataMemoryOptimized 如果已启用 tempdb,可将内存优化表用于元数据,则返回 1;如果 tempdb 对元数据使用基于磁盘的常规表,则返回 0。 有关详细信息,请参阅 tempdb Database

适用于:SQL Server 2019 (15.x) 及更高版本。

基本数据类型:int
IsXTPSupported 服务器支持内存中 OLTP。

1 = 服务器支持内存中 OLTP。
0 = 服务器不支持内存中 OLTP。
NULL = 输入无效、错误或不适用。

适用于:SQL Server 2014(12.x)及更高版本以及 Azure SQL 数据库。

基本数据类型:int
LCID 排序规则的 Windows 区域设置标识符 (LCID)。

基本数据类型:int
LicenseType Unused. 许可证信息不由 SQL Server 产品保留或维护。 始终返回 DISABLED。

基本数据类型:nvarchar(128)
MachineName 运行服务器实例的 Windows 计算机名称。

对于群集实例,即在 Microsoft 群集服务的虚拟服务器上运行的 SQL Server 实例,返回虚拟服务器的名称。

NULL = 输入无效、错误或不适用。

基本数据类型:nvarchar(128)
NumLicenses Unused. 许可证信息不由 SQL Server 产品保留或维护。 始终返回 NULL

基本数据类型:int
PathSeparator 在 Windows 上返回 \,在 Linux 上返回 /

适用于:SQL Server 2017 (14.x) 及更高版本。

基本数据类型:nvarchar
ProcessID SQL Server 服务的进程 ID。 ProcessID 对于标识属于该实例的 Sqlservr.exe 很有用。

NULL = 输入无效、错误或不适用。

基本数据类型:int
ProductBuild 生成号。

适用于:SQL Server 2014 (12.x) 及更高版本。

基本数据类型:nvarchar(128)
ProductBuildType 当前版本的版本类型。

返回以下值之一:

OD = 特定客户按需版本。
GDR = 通过 Windows 更新发布的常规分发版本。
NULL = 不适用。

适用于:SQL Server。

基本数据类型:nvarchar(128)
ProductLevel SQL Server 实例的版本级别。

返回以下值之一:

“RTM”= 原始发布版本
“SPn”= 服务包版本
'CTPn', = Community Technology Preview 版本。

基本数据类型:nvarchar(128)
ProductMajorVersion 主版本。

适用于:SQL Server。

基本数据类型:nvarchar(128)
ProductMinorVersion 次版本。

适用于:SQL Server。

基本数据类型:nvarchar(128)
ProductUpdateLevel 当前版本的更新级别。 CU 表示累积更新。

返回以下值之一:

CUn = 累积更新
NULL = 不适用。

适用于:SQL Server 和 Azure SQL 托管实例。

基本数据类型:nvarchar(128)
ProductUpdateReference 该版本的知识库文章。

适用于:SQL Server。

基本数据类型:nvarchar(128)
ProductUpdateType 实例遵循的更新节奏。 对应于 Azure SQL 托管实例更新策略

返回以下值之一:

CU = 通过相应的主要 SQL Server 版本的累计跟新 (CU) 来部署更新(SQL Server 2022 更新策略)。

连续 = 新功能在可用后立即引入到 Azure SQL 托管实例,独立于 SQL Server 发布节奏(Always-up-to-date 更新策略)。

适用于:Azure SQL 托管实例。

基本数据类型:nvarchar(128)
ProductVersion 实例 SQL Server 的版本,格式为 major.minor.build.revision。

基本数据类型:nvarchar(128)
ResourceLastUpdateDateTime 返回资源数据库上次更新的日期和时间。

基本数据类型:datetime
ResourceVersion 返回版本资源数据库。

基本数据类型:nvarchar(128)
ServerName 与指定实例关联的 Windows 服务器和实例信息。

NULL = 输入无效或错误。

基本数据类型:nvarchar(128)
SqlCharSet 排序规则 ID 中的 SQL 字符集 ID。

基本数据类型:tinyint
SqlCharSetName 来自排序规则的 SQL 字符集名称。

基本数据类型:nvarchar(128)
SqlSortOrder 排序规则中的 SQL 排序顺序 ID。

基本数据类型:tinyint
SqlSortOrderName 来自排序规则的 SQL 排序顺序名称。

基本数据类型:nvarchar(128)
SuspendedDatabaseCount 服务器上挂起的数据库数。

基本数据类型:int

下表列出了可能的值 EditionIDEdition

EditionID 版本
1804890536 Enterprise
1872460670 Enterprise Edition:基于核心的许可
610778273 企业评估
284895786 商业智能
-2117995310 开发人员 1 或 Developer Enterprise 2
-2509700633 开发人员标准 2
-1592396055 快速
-133711905 使用高级服务的 Express
-1534726760 标准
1293598313 Web
1674378470 SQL 数据库或 Azure Synapse Analytics
-1461570097 Azure SQL Edge 开发人员 3
1994083197 Azure SQL Edge 4

1适用于:SQL Server 2022 (16.x) 和早期版本。
2适用于:SQL Server 2025 (17.x) 预览版和更高版本。
3 指示 Azure SQL Edge 的开发唯一版本。
4 指示 Azure SQL Edge 的付费版本。

返回类型

sql_variant

Remarks

ServerName 属性

ServerName 函数的 SERVERPROPERTY 属性和 @@SERVERNAME 返回相似的信息。 ServerName 属性提供 Windows 服务器和实例名称,两者共同构成唯一的服务器实例。 @@SERVERNAME 提供当前配置的本地服务器名称。

如果安装时未更改默认服务器名称,则 ServerName 属性和 @@SERVERNAME 返回相同的信息。 可以通过执行以下过程配置本地服务器的名称:

EXECUTE sp_dropserver 'current_server_name';
GO

EXECUTE 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 服务器名称包含任何小写字符,则此行为更改可能会导致函数的属性ServerNameSERVERPROPERTY(大写与小写)之间的差异,即使服务器没有名称更改也是如此。

请考虑将服务器命名为 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 属性,而不更改为大写

版本属性

SERVERPROPERTY 函数返回与版本信息有关的各个属性,而 @@VERSION 函数将输出合并为一个字符串。 如果应用程序需要各个属性字符串,则可以使用 SERVERPROPERTY 函数返回它们,而不是分析 @@VERSION 结果。

Permissions

所有用户都可以查询服务器属性。

Examples

下面的示例在 SERVERPROPERTY 语句中使用 SELECT 函数返回有关当前 SQL Server 实例的信息。

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