谁能告诉我如何使用 c# 和 SMO 或任何 api 获取远程 Sqlserver 实例?
我有一个名为“RemoteMC”的远程服务器,它有 2 个 sql server 实例:“RemoteMc”和“RemoteMC\sqlexpress”
我试着用这样的代码获取实例:
Server srv=new Server("RemoteMC");
DataTable dt=SmoApplication.EnumAvailableSqlServer(true);
但它返回“Host\sqlexpress”
我不知道出了什么问题。我怎样才能得到结果:
RemoteMC
RemoteMC\sqlexpress;
?
最佳答案
SmoApplication.EnumAvailableSqlServers
方法就是你要找的。有 3 个重载,其中一个需要 string
服务器名称的参数。
它返回一个 DataTable
其行具有类似 Version
的字段, name
, IsLocal
等
您需要添加对 SMO 库的引用,并且您可能希望在 C# 文件的顶部包含“using Microsoft.SqlServer.Management.Smo;
”。
参见 http://www.sqldbatips.com/showarticle.asp?ID=34有关 SQL SMO 的介绍。
编辑:解决这个特定问题的一些代码(我没有编译或运行它):
编辑:将行添加到 foreach 以便它可以编译。
DataTable dataTable = SmoApplication.EnumAvailableSqlServers(false);
foreach (DataRow dataRow in dataTable.Rows)
{
if ((dataRow["Server"] as string) == "MyServerName")
Console.WriteLine(dataRow["Instance"] as string);
}
关于c# - 如何获取特定机器的 SqlInstances 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1097010/