sql - 获取远程服务器版本 MS SQL

标签 sql sql-server azure

我有一个表,其中包含已添加服务器的列表。但我想添加一个额外的列,它将确定是否是 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/

相关文章:

sql - 删除约束不起作用

azure - 在 Azure 部署的 terraform 计划上获取状态代码 403

azure - 在 Azure 中的 Web 应用程序之间共享连接字符串

mysql - 为什么 MySql LEFT OUTER JOIN 返回 20 倍以上的行?

sql - 仅在更新的行上更新后的 PostgreSQL 触发器

sql-server - 使用 SQL CTE 打印树

mysql - sql server try catch block 的mysql等价物是什么

c# - 如何通过 Pulumi 在 Function App 中创建主机 key

java - 如何在 while 循环中执行查询并执行 Qry 结果集?

php - mysql中 '-'和 '&'字符串的问题