vineel
vineel

Reputation: 3683

SQL Server: How to find all localdb instance names

I have two versions (2012, 2014) of SQL Server Express LocalDB installed in my system.

How can I find all existing LocalDB instance names?

I found a way to do that using command line as mentioned in the answers section.

Is there a better and easy way to do it?

Upvotes: 52

Views: 78998

Answers (5)

Legends
Legends

Reputation: 22702

To list all localdb instances, take a look vineel's answer!


If you want to list all databases of your default localdb instance using UI, look here (might not work with SSMS2019 anymore):

Just open your SSMS and connect to (LocalDB)\MSSQLLocalDB.
Now you will see all your LocalDB-Instances.

This works at least with SS2016.

enter image description here

Upvotes: 31

Dima Pavlenko
Dima Pavlenko

Reputation: 161

In Visual Studio 2019 Server Explorer (or SQL Server Object Explorer button there) click "Add SQL Server" button

Add SQL Server Button

and expand the Local tab to view the list of local SQL Server currently running services it finds. Only when you connect to the selected server it will get listed in SQL Server Object Explorer:

SQL Server Object Explorer

Upvotes: 5

Ram
Ram

Reputation: 121

Here is the method i am using to get all instances from command line -

    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;
    }

Upvotes: 7

Ricky Keane
Ricky Keane

Reputation: 1700

In Visual Studio 2017 the SQL Server Object Explorer will show you all of the LocalDb instances

Upvotes: 7

vineel
vineel

Reputation: 3683

I found SqlLocalDB utility that needs to be run on command line.

SqlLocalDB can be found in

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

or

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

To get all existing LocalDB instance names, use:

SqlLocalDB.exe i

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

To get detailed information about a specific LocalDB instance:

SqlLocalDB.exe i "MSSQLLocalDB"

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

Upvotes: 83

Related Questions