我有一个表,其中包含已添加服务器的列表。但我想添加一个额外的列,它将确定是否是 Azure 服务器。如何实现?
最佳答案
我将将此作为答案发布,因为它对 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 数据仓库。
关于sql - 获取远程服务器版本 MS SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56769980/