mssqllocaldb - SQL Server: cómo encontrar todos los nombres de instancia localdb
sql server localdb 2017 connection string (4)
Tengo dos versiones (2012, 2014) de SQL Server Express LocalDB instaladas en mi sistema.
¿Cómo puedo encontrar todos los nombres de instancia de LocalDB
existentes?
Encontré una forma de hacerlo usando la línea de comando como se menciona en la sección de respuestas.
¿Hay una manera mejor y más fácil de hacerlo?
Aquí está el método que estoy usando para obtener todas las instancias de la línea de comandos:
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;
}
En Visual Studio 2017, el Explorador de objetos de SQL Server le mostrará todas las instancias de LocalDb
Encontré la utilidad SqlLocalDB que debe ejecutarse en la línea de comandos.
SqlLocalDB se puede encontrar en
C:/Program Files/Microsoft SQL Server/110/Tools/Binn
o
C:/Program Files/Microsoft SQL Server/120/Tools/Binn
Para obtener todos los nombres de instancia de LocalDB
existentes, use:
SqlLocalDB.exe i
info|i
Lists all existing LocalDB instances owned by the current user
and all shared LocalDB instances.
Para obtener información detallada sobre una instancia específica de LocalDB
:
SqlLocalDB.exe i "MSSQLLocalDB"
info|i "instance name"
Prints the information about the specified LocalDB instance.