SQL Server枚举中未返回版本信息

时间:2011-11-14 20:49:58

标签: c# sql-server smo

作为安装的一部分,我需要能够识别计算机上安装的SQL Server的实例和版本。

我正在使用this approach来获取本地计算机上SQL Server实例的列表;我只对本地机器感兴趣。

我需要获取所有实例,并检查版本。我们需要SQL Server 2008 R2用于该应用程序。

然而,我得到的是:

"MACHINENAME"
"MACHINENAME"
{}
true
{} (**)
true

而我期待(**)有版本。

如果有防火墙,我发现这种技术会失败:

如果防火墙正在服务器上运行,则此方法无法列出本地实例。该 防火墙阻止调用方法时发出的任何广播流量,即使发送方也是如此 来自本地机器。

但无论启用还是禁用防火墙,我都会得到相同的结果。

对于我做错了什么有任何建议吗?

1 个答案:

答案 0 :(得分:1)

我不知道,但在您获得服务器列表后,只需查询它们。您可以使用SqlCommand发送“select @@ version”查询,也可以使用Microsoft.SqlServer.Management.Smo命名空间中的Server类来获取此信息。