首页 > 解决方案 > 获取远程服务器版本 MS SQL

问题描述

我有一个表,其中包含已添加服务器的列表。但我想添加一个额外的列,它将识别它是否是 Azure 服务器。如何实施?

标签: sqlsql-serverazure

解决方案


我会将其作为答案发布,因为它使用不同的参数SERVERPROPERTY,但这与我链接的答案非常接近(确定链接服务器的 SQL Server 版本)。

您将希望改为'Edition'用作输入参数:

DECLARE @Edition sysname;

SELECT @Edition = CONVERT(sysname,Edition)
FROM OPENQUERY(YourLinkedServer,'SELECT SERVERPROPERTY(''Edition'') AS Edition;');

IF (CHARINDEX('Azure', @Edition)) > 0
   SET @IsAzure = 1;
ELSE
   SET @IsAzure = 0;

根据文档(SERVERPROPERTY (Transact-SQL)),返回值之一是'SQL Azure'. 该响应“指示 SQL 数据库或 SQL 数据仓库”,我认为这不是问题,因为您只想知道主机是否在 Azure 中,而不是它是否是 SQL 数据库或 SQL 数据仓库。

但是,如果您确实需要确定它是 SQL 数据库还是 SQL 数据仓库(在 Azure 中),您可以使用'EngineEdition'; 5表示 SQL 数据库和6SQL 数据仓库。


推荐阅读