gpt4 book ai didi

c# - 如何获取特定机器的 SqlInstances 列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:51 24 4
gpt4 key购买 nike

谁能告诉我如何使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com