SERVERPROPERTY (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库Microsoft Fabric 中的 SQL 数据库

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

Transact-SQL 语法约定

注意

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

语法

SERVERPROPERTY ( 'propertyname' )

重要

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

参数

propertyname

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

properties 返回的值
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:基于内核的许可”

“Enterprise Evaluation Edition”

“Business Intelligence Edition”

“Developer Edition”

“Express Edition”

“Express Edition with Advanced Services”

“Standard Edition”

“Web Edition”

“SQL Azure”指示 SQL 数据库或 Azure Synapse Analytics 或 Microsoft Fabric

“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 = 企业评估

284895786 = 商业智能

-2117995310 = 开发人员

-1592396055 = Express

-133711905 = 使用高级服务的 Express

-1534726760 = 标准

1293598313 = Web

1674378470 = SQL 数据库 或 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(适用于 Enterprise、Developer 和 Enterprise 版本。)

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 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 数据库和 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 属性仅适用于 AlwaysOn 可用性组。 其他高可用性或灾难恢复功能(如数据库镜像或日志传送)都不受此服务器属性影响。
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 数据库。

服务器支持内存中 OLTP。

1 = 服务器支持内存中 OLTP。

0 = 服务器不支持内存中 OLTP。

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

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

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

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

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

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

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

基本数据类型:int
PathSeparator 适用于:SQL Server 2017 (14.x) 及更高版本。

在 Windows 上返回 \,在 Linux 上返回 /

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

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

基本数据类型:int
ProductBuild 适用于:2015 年 10 月开始的 SQL Server 2014 (12.x)。

生成号。

基本数据类型:nvarchar(128)
ProductBuildType 适用范围:SQL Server 2012 (11.x) 到当前版本 2015 年底开始的更新。

当前版本的版本类型。

返回以下值之一:

OD = 特定客户按需版本。

GDR = 通过 Windows 更新发布的常规分发版本。

NULL = 不适用。

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

返回以下值之一:

“RTM”= 原始发布版本

“SPn”= 服务包版本

“CTPn”= 社区技术预览版版本

基本数据类型: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 与指定实例关联的 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 属性

ServerName 函数的 SERVERPROPERTY 属性和 @@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 服务器名称包含任何小写字符,则行为的这种更改可能会导致 ServerName 函数的 SERVERPROPERTY 属性与 @@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 函数将输出合并为一个字符串。 如果应用程序需要各个属性字符串,则可以使用 SERVERPROPERTY 函数返回它们,而不是分析 @@VERSION 结果。

权限

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

示例

下面的示例在 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

有关 Windows 上 SQL Server 各版本支持的功能列表,请参阅: