【发布时间】:2013-04-16 18:25:59
【问题描述】:
我有一段代码应该返回我机器上安装的所有 SQL Server 实例。它看起来像这样:
DataTable dtLocalServers = SmoApplication.EnumAvailableSqlServers(true);
foreach (DataRow dServer in dtLocalServers.Rows)
{
Console.WriteLine(dServer.ToString());
}
它可以工作、编译和运行。但是,生成的数据表不是很有用。它看起来像这样:
Name | Server | Instance | IsClustered | Version | IsLocal
IAN-PC | IAN-PC | | True | | True
问题是虽然这会返回一个结果,但这并没有给我任何关于服务器的信息。特别是,我正在尝试获取版本(SQL Server 2008 Express R2 或 SQL Server Express 2012),我假设它应该在“版本”字段中。我知道我有两个副本在本地运行以进行此测试。
我还能做些什么来获得更好的结果吗?
编辑:IAN-PC 是我电脑的名称。我的电脑上有两个正在运行的 SQL Server 实例,IANSQLEXP (SQL Server 2008 Express R2) 和 SQLEXPRESS (SQL Server Express 2012)。在 SQL Server 配置管理器中,还有两个未运行的代理和一个未运行的 SQL Server Browser。
【问题讨论】:
-
您的表格有一列
Version。如果服务器是集群的,它不会返回版本。 -
我理解那部分。没有其他方法可以检查服务器吗?我们希望在客户的计算机上提供服务,因此我们无法控制它们是否是集群的,并且仍想检查安装的内容。这可能是个愚蠢的问题,我不熟悉 SQL Server 的工作原理。
-
你的集群实例是命名实例吗?
-
@AaronBertrand 我不确定,我该如何检查?
-
使用 Management Studio 连接并运行
SELECT @@SERVERNAME;
标签: c# sql-server sql-server-2008-r2 smo