获取远程服务器版本MS SQL

时间:2019-06-26 09:55:03

标签: sql sql-server azure

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

2 个答案:

答案 0 :(得分:2)

我将其作为答案发布,因为它为SERVERPROPERTY使用了不同的参数,但这与我链接的答案(Determine SQL Server version of linked 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数据库和6 SQL数据仓库。

答案 1 :(得分:0)

要访问给定的VM是从Azure运行还是从AWS运行,都无法从SQL Server完成,

确定此问题的唯一正确方法是使用PowerShell或其他脚本语言与Azure托管实例元数据服务进行对话。您可以在此处找到记录的内容: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service