it-swarm.com.de

SQL Server: So finden Sie alle localdb-Instanznamen

Ich habe zwei Versionen (2012, 2014) von SQL Server Express LocalDB auf meinem System installiert.

Wie kann ich alle vorhandenen LocalDB Instanznamen finden?

Ich habe einen Weg gefunden, dies über die Befehlszeile zu tun, wie im Abschnitt Antworten beschrieben.

Gibt es eine bessere und einfachere Möglichkeit?

32
vineel

Ich habe das Dienstprogramm SqlLocalDB gefunden, das über die Befehlszeile ausgeführt werden muss.

SqlLocalDB finden Sie in

C:\Program Files\Microsoft SQL Server\110\Tools\Binn

oder

C:\Program Files\Microsoft SQL Server\120\Tools\Binn

Verwenden Sie Folgendes, um alle vorhandenen LocalDB -Instanznamen abzurufen:

SqlLocalDB.exe i

 info|i
  Lists all existing LocalDB instances owned by the current user
  and all shared LocalDB instances.

So rufen Sie detaillierte Informationen zu einer bestimmten Instanz von LocalDB ab:

SqlLocalDB.exe i "MSSQLLocalDB"

info|i "instance name"
  Prints the information about the specified LocalDB instance.
50
vineel

Wenn Sie die Benutzeroberfläche bevorzugen (funktioniert möglicherweise nicht mehr mit SSMS2019)

Öffne einfach dein SSMS und verbinde dich mit (LocalDB)\MSSQLLocalDB.
Nun sehen Sie alle Ihre LocalDB-Instanzen .

Dies funktioniert zumindest mit SS2016.

enter image description here

13
Legends

In Visual Studio 2017 zeigt der SQL Server-Objekt-Explorer alle LocalDb-Instanzen an

5
Ricky Keane

Hier ist die Methode, die ich verwende, um alle Instanzen von der Kommandozeile zu bekommen -

    internal static List<string> GetLocalDBInstances()
    {
        // Start the child process.
        Process p = new Process();
        // Redirect the output stream of the child process.
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.FileName = "cmd.exe";
        p.StartInfo.Arguments = "/C sqllocaldb info";
        p.StartInfo.CreateNoWindow = true;
        p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        p.Start();
        // Do not wait for the child process to exit before
        // reading to the end of its redirected stream.
        // p.WaitForExit();
        // Read the output stream first and then wait.
        string sOutput = p.StandardOutput.ReadToEnd();
        p.WaitForExit();

        //If LocalDb is not installed then it will return that 'sqllocaldb' is not recognized as an internal or external command operable program or batch file.
        if (sOutput == null || sOutput.Trim().Length == 0 || sOutput.Contains("not recognized"))
            return null;
        string[] instances = sOutput.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
        List<string> lstInstances = new List<string>();
        foreach (var item in instances)
        {
            if (item.Trim().Length > 0)
                lstInstances.Add(item);
        }
        return lstInstances;
    }
5
Ram