SERVERPROPERTY (Transact-SQL)

适用于:yesSQL Server(所有受支持的版本)YesAzure SQL 数据库YesAzure SQL 托管实例yesAzure Synapse AnalyticsyesAnalytics Platform System (PDW)

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

Transact-SQL 语法约定

语法

SERVERPROPERTY ( 'propertyname' )

重要

SQL Server 和 Azure SQL 数据库 的 数据库引擎 版本号之间没有可比性,它们分别代表这两项产品的内部版本号。 Azure SQL 数据库 的 数据库引擎 基于与 SQL Server 数据库引擎 相同的基本代码。 最重要的是,Azure SQL 数据库 中的 数据库引擎 始终具有最新的 SQL 数据库引擎 位。 Azure SQL 数据库 的版本 12 高于 SQL Server 的版本 15。

注意

若要查看 SQL Server 2014 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

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 数据库 或 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:基于内核的许可

610778273 = Enterprise Evaluation

284895786 = Business Intelligence

-2117995310 = Developer

-1592396055 = Express

-133711905 = Express with Advanced Services

-1534726760 = Standard

1293598313 = Web

1674378470 = SQL 数据库 或 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(对 Enterprise、Developer 以及 Enterprise 版本返回该值。)

4 = Express(对 Express、Express with Tools 和 Express with Advanced Services 返回该值)

5 = SQL 数据库

6 = Microsoft Azure Synapse Analytics

8 = Azure SQL 托管实例

9 = Azure SQL Edge(将为 Azure SQL Edge 的所有版本返回它)

11 = Azure Synapse 无服务器 SQL 池

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

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

基本数据类型: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 从 CU4 开始在 SQL Server 2019 (15.x) 中引入。

如果实例为 SQL Server 大数据群集,则返回 1;如果不是,则为 0。

基本数据类型:int
IsClustered 服务器实例已配置在故障转移群集中。

1 = 群集。

0 = 非群集。

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

基本数据类型:int
IsExternalAuthenticationOnly 适用范围:Azure SQL 数据库和 Azure SQL 托管实例。

返回是否启用仅 Azure AD 身份验证

1 = 仅启用 Azure AD 身份验证。

0 = 仅禁用 Azure AD 身份验证。

基本数据类型: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
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 年底开始的更新。

当前版本的更新级别。 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 Windows 服务器和与指定的 SQL Server 实例关联的实例信息。

NULL = 输入无效或错误。

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

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

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

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

基本数据类型:nvarchar(128)

返回类型

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 将返回此新名称。

自 SQL Server 2019 CU1 起,与以前使用大写的主版本相比,SERVERPROPERTY 函数的 ServerName 属性在保存 Windows 服务器名称时会返回该名称。 此行为在 CU9 和 CU12 之间改回大写,但从 CU13 开始,服务器名称将在保存时返回。

如果 Windows 服务器名称包含任何小写字符,则行为的这种更改可能会导致 SERVERPROPERTY 函数的 ServerName 属性与 @@SERVERNAME 之间存在差异(大写与小写),即使服务器没有更改名称也是如此。

请考虑将服务器命名为 server01,将 SQL Server 实例命名为 INST1。 下表汇总了 SQL Server 2019 的不同版本之间的行为更改:

SQL Server 2019 内部版本 SERVERPROPERTY('ServerName') 其他信息
RTM SERVER01\INST1 以大写形式返回 ServerName 属性
CU1 – CU8 server01\INST1 按原样返回 ServerName 属性,而不更改为大写
CU9 – CU12 SERVER01\INST1 以大写形式返回 ServerName 属性
CU 13 及更高版本 server01\INST1 按原样返回 ServerName 属性,而不更改为大写

Version 属性

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

请参阅