如何获取当前以编程方式运行的sql server实例名称

时间:2011-12-07 04:00:37

标签: sql-server-express

我正在动态地为sql express数据库创建连接字符串。我想知道如何使用c#以编程方式获取当前在本地计算机上运行的服务器实例的名称。

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码:

using System;
using Microsoft.Win32;

namespace TestConsoleApp
{
    class Program
    {
      static void Main()
      {
        RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
        String[] instances = (String[])rk.GetValue("InstalledInstances");
        if (instances.Length > 0)
        {
           foreach (String element in instances)
           {
              if (element == "MSSQLSERVER")
                 Console.WriteLine(System.Environment.MachineName);
              else
                 Console.WriteLine(System.Environment.MachineName + @"\" + element);
           }
        }
        Console.ReadKey();
      }
    }
}

修改

如果您希望获取处于运行状态的实例,请参阅以下链接:http://support.microsoft.com/kb/q287737/