我有一段代码应该返回安装在我的机器上的所有SQL Server实例。它看起来像这样:为什么我的方法没有返回任何有效的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),我认为它应该在'Version'字段中。我知道这样一个事实,即我有两份本地运行的副本用于测试。
还有什么我可以做得到更好的结果吗?
编辑:IAN-PC是我的电脑的名字。我的计算机上有两个运行的SQL Server实例,IANSQLEXP(SQL Server 2008 Express R2)和SQLEXPRESS(SQL Server Express 2012)。在SQL Server配置管理器中,还有两个未运行的代理程序和一个未运行的SQL Server浏览器。
您的表格具有'Version'作为列。如果服务器是集群的,它将不会返回一个版本。 – Romoku
我明白那一部分。有没有其他的方式来检查服务器?我们希望将服务放在客户的计算机上,因此我们无法控制它们是否被群集,并且仍然想检查安装的内容。这可能是一个愚蠢的问题,我不熟悉SQL Server的工作原理。 – ijb109
你的集群实例是一个命名实例吗? –