有人知道如何从SQL连接字符串中提取机器名吗? 例如,对于以下连接字符串,当在机器“ighost”上运行app / script时,其具有IP地址190.190.200.100:
"Server=ighost;Database=myDataBase;User Id=myUsername;Password=myPassword;"
"Server=(local);Database=myDataBase;User Id=myUsername;Password=myPassword;"
"Server=.\SqlExpress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
"Server=190.190.200.100,1433;Database=myDataBase;User Id=myUsername;Password=myPassword;"
我想得到结果,只是机器名称:
ighost
这不是上面问题的重复,因为我不是在问如何解析连接字符串,而是如何查找服务器机器名,即使连接字符串服务器属性包含诸如(local),localhost,ipaddress,dot之类的值。
答案 0 :(得分:1)
如果这些连接字符串引用同一服务器,则可靠地找出计算机名称的唯一方法是连接到服务器并运行以下命令:
select @@SERVERNAME
示例代码:
using (var cn = new SqlConnection(yourConnectionString))
{
cn.Open();
using (var cmd = new SqlCommand("Select @@SERVERNAME", cn))
{
Console.WriteLine(cmd.ExecuteScalar());
}
}