¿Cómo conectarse a LocalDB en Visual Studio Server Explorer?

240

No puedo creer que no haya podido encontrar una solución que funcione después de una hora de búsqueda. Estoy siguiendo este artículo sobre Entity Framework 6.0 que ofrece un recorrido simple sobre Code First. Creé el proyecto e instalé el último paquete EF Nuget para que el proyecto lo compile. También verifiqué que tengo instalado Microsoft SQL Server 2012 Express LocalDB que vino con Visual Studio 2013. No tengo ninguna otra instancia de SQL instalada en mi computadora local. El programa se ejecuta y las entradas se agregan a la base de datos y se envían a la consola. Pero cuando el artículo dice "comprueba tu ubicación" no dice cómo. No veo ningún archivo '.mdf' o '.ldf' creado en la carpeta del proyecto. Intenté todas las formas de conectar Visual Studio ' s Server Explorer a LocalDB. El asistente no puede localizar(localdb)o no puedo encontrar ningún proveedor en el Explorador de servidores para aceptar la cadena de conexión, como (localdb)\v11.0;Integrated Security=true;he visto en varios lugares en StackOverflow, pero ninguna respuesta funciona o marcada como respuesta. Por favor ayuda, ¡esto no tiene por qué ser tan frustrante!

¿Cuáles son los pasos para conectar Visual Studio Server Explorer a LocalDB?

orad
fuente
70
A menudo compadezco a las personas que recién están entrando en este negocio. Hace 20 años, las herramientas eran mucho más fáciles de usar. La documentación ahora es apenas adecuada y, en la mayoría de los casos, inferior a. Ahora veo "documentación" en MSDN que simplemente explica un método, como "foo" -> "Este es el método foo". ¿En serio, Microsoft? ¿Qué pasó con los escritores técnicos? ¿Qué pasó con los libros en línea (de verdad)?
Pittsburgh DBA
1
Asegúrese de ejecutar Visual Studio como administrador.
Darren Griffith
44
Si está de acuerdo con el uso del Explorador de objetos de SQL Server de Visual Studio en lugar del Explorador de servidores . Es una solución más simple (menos configuración manual), verifique mi respuesta: stackoverflow.com/a/41906391/3645638
Svek
Mi configuración crea la base de datos en sqlserverexpress en lugar de en localdb. ¿Qué causa esto?
Jason Cheng el

Respuestas:

282

En Visual Studio 2012 todo lo que tenía que hacer era ingresar:

(localdb)\v11.0

Visual Studio 2015 y Visual Studio 2017 cambiaron a:

(localdb)\MSSQLLocalDB

como el nombre del servidor al agregar una Microsoft SQL Server Datafuente en:

View/Server Explorer/(Right click) Data Connections/Add Connection

y luego se rellenaron los nombres de las bases de datos. No necesitaba hacer todos los demás pasos en la respuesta aceptada, aunque sería bueno que el nombre del servidor estuviera disponible automáticamente en el cuadro combinado de nombre del servidor.

También puede navegar por los nombres de bases de datos LocalDB disponibles en su máquina usando:

View/SQL Server Object Explorer.
A RationalDev le gusta GoFundMonica
fuente
44
Sí, esto es lo que se supone que funciona la primera vez. Pero si no fuera así, los pasos en la respuesta aceptada deberían iniciar el servicio y hacerlo funcionar.
Orad
Tal vez el Explorador de objetos de SQL Server lo inició por mí, ya que lo usé para averiguar cuál había sido el nombre del servidor Entity Framework. Había encontrado esta pregunta, pero estaba un poco asustada al intentar la respuesta, ya que esperaba algo más simple y no la había leído por completo, ya que pensé que tenía que usar el nombre de la tubería :)
RationalDev le gusta GoFundMonica el
¿Estoy ciego a los detalles o es extremadamente frustrante que configurar esto no sea más intuitivo? Ya sea en 2012 o 2015, parece que casi están ocultando cosas como esta en todo el IDE.
Rex_C
gracias. Me estaba estrujando los sesos hasta encontrar tu respuesta.
Alexandre N.
55
¿Por qué Microsoft, por qué? ¿Por qué cambiar el nombre y no actualizar su documentación? (Gracias por el camino VS 2015)
Thibault D.
256

OK, respondiendo a mi propia pregunta.

Pasos para conectar LocalDB a Visual Studio Server Explorer

  1. Abrir símbolo del sistema
  2. correr SqlLocalDB.exe start v11.0
  3. correr SqlLocalDB.exe info v11.0
  4. Copie el nombre de la tubería de instancia que comienza con np: \ ...
  5. En Visual Studio, seleccione TOOLS> Connect to Database ...
  6. Para el nombre del servidor ingrese (localdb)\v11.0. Si no funcionó, use el nombre de la tubería de instancia que copió anteriormente. También puede usar esto para conectarse con SQL Management Studio.
  7. Seleccione la base de datos en la siguiente lista desplegable
  8. Haga clic en Aceptar

ingrese la descripción de la imagen aquí

orad
fuente
86
Casi todas las acciones en estos días en la plataforma de MS implican algo de magia o conocimiento memorizado previo ... ¿quién respaldará estas cosas en 5 años cuando exista un nuevo conjunto de magia?
tbone
34
¡Gracias! Solo para agregar a esta excelente respuesta (y excelente pregunta): SqlLocalDb infoenumerará todos los nombres de servidor. En mi caso, después de la magia del código EF primero, mi base de datos terminó en MSSQLLocalDBno v11.0, así que ingresé (localdb)\MSSQLLocalDBen el cuadro de diálogo Agregar conexión.
biscuit314
1
SqlLocalDb.exe aparece dos veces en la ruta de mi sistema: primero en C: \ Archivos de programa \ Microsoft SQL Server \ 110 \ Tools \ Binn y luego en C: \ Archivos de programa \ Microsoft SQL Server \ 120 \ Tools \ Binn. Por lo tanto, solo se llamará a la versión anterior. Tengo VS2012 y VS 2013 instalados.
John Pankowicz
2
Creo que cada vez más personas gravitan hacia otros lenguajes de programación de Microsoft. Estas cosas simples de configuración y ubicación de archivos se han vuelto más difíciles de lo que carecen los otros idiomas. Si les falta algo.
JustJohn
44
He estado rascándome la cabeza toda la tarde sobre esto. ¿Por qué tienen que hacerlo tan complicado, cuando solía ser tan fácil? Gracias por la ayuda.
George Williams
71

Seleccione en:

  1. Fuente de datos: Microsoft SQL Server (SqlClient)
  2. Nombre del servidor: (localdb)\MSSQLLocalDB
  3. Inicie sesión en el servidor: Use Windows Authentication

Presione el botón Actualizar para obtener el nombre de la base de datos :)

Captura de pantalla

Kaps
fuente
1
de alguna manera fue la única respuesta que
funcionó
44
igual aquí vs2015 .. Esta fue la respuesta ... Supongo que cambiaron el nombre de localDb?
punkouter
1
Este lo hizo para VS2015 RC en Win 8.1.
ScottG
Sobre el nombre del servidor: stackoverflow.com/questions/27197359/…
kr85
Funciona en vs2017 también.
Toke Breer-Mortensen
25

Utilice SQL Server Object Explorer (SSOX) en su lugar

A diferencia de las otras respuestas, este enfoque utiliza:
- No hay comandos especiales.
- Sin configuraciones complicadas.
Simplemente use el Explorador de objetos de SQL Server

Es bastante sencillo ...

  • En el menú Ver , abra el Explorador de objetos de SQL Server .

uno

  • Haga clic derecho en la {YourTableName}tabla> Ver diseñador

dos

Hecho.

Svek
fuente
16

Funcionó para mi.

  1. Abrir símbolo del sistema
  2. Ejecute "Inicio SqlLocalDB.exe"
  3. Respuesta del sistema "Iniciada LocalDB" mssqllocaldb "iniciado".
  4. En VS, Ver / Explorador del servidor / (clic derecho) Conexiones de datos / Agregar conexión
    • Fuente de datos: Microsoft SQL Server (SqlClient)
    • Nombre del servidor: (localdb) \ MSSQLLocalDB
    • Inicie sesión en el servidor: use la autenticación de Windows
  5. Presione "Probar conexión", luego OK.
Ader Hwang
fuente
8

Lo siguiente funciona con Visual Studio 2017 Community Edition en Windows 10 usando SQLServer Express 2016.

Abra un PowerShell y compruebe cómo se llama SqlLocalDB.exe infoy si se está ejecutando con SqlLocalDB.exe info NAME. Así es como se ve en mi máquina:

> SqlLocalDB.exe info
MSSQLLocalDB
> SqlLocalDB.exe info MSSQLLocalDB
Name:               mssqllocaldb
Version:            13.0.1601.5
Shared name:
Owner:              DESKTOP-I4H3E09\simon
Auto-create:        Yes
State:              Running
Last start time:    4/12/2017 8:24:36 AM
Instance pipe name: np:\\.\pipe\LOCALDB#EFC58609\tsql\query
>

Si no se está ejecutando, debe comenzar con SqlLocalDB.exe start MSSQLLocalDB. Cuando se está ejecutando, ves el Instance pipe name:que comienza con np:\\. Copie esa cadena de tubería con nombre. Dentro de VS2017, abra la vista Server Explorery cree una nueva conexión de tipo Microsoft SQL Server (SqlClient)(no se deje engañar por los otros tipos de archivos que desea el tipo de conexión completa) y configure el Server name:nombre de canal de instancia que copió de PowerShell.

También configuré Connect to databasepara que sea la misma base de datos que estaba en la cadena de conexión que funcionaba en mi proyecto Dotnet Core / Entity Framework Core que se configuró usando dotnet ef database update.

Puede iniciar sesión y crear una base de datos utilizando el sqlcmdy la cadena de canalización con nombre:

sqlcmd -S np:\\.\pipe\LOCALDB#EFC58609\tsql\query 1> create database EFGetStarted.ConsoleApp.NewDb; 2> GO

Hay instrucciones sobre cómo crear un usuario para su aplicación en https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utility

simbo1905
fuente
7

Visual Studio 2015 RC, tiene instalado LocalDb 12, instrucciones similares a las anteriores, pero aún no debería ser necesario que conozca 'magia', antes de usar esto, la instancia predeterminada debería haberse activado ... Rant completo, no para la solución :

cmd> sqllocaldb start

Que mostrará

LocalDB instance "MSSQLLocalDB" started.

El nombre de su instancia puede diferir. De cualquier forma, desplácese a VS y abra Server Explorer, haga clic con el botón derecho en Conexiones de datos, elija Agregar, elija SQL Server, en el tipo de nombre del servidor:

(localdb)\MSSQLLocalDB

Sin ingresar un nombre de base de datos, haga clic en 'Probar conexión'.

OzBob
fuente
6

La solución no funciona.

Exactamente como en la ilustración de ejemplo, todos estos pasos solo proporcionan acceso a las bases de datos del "sistema", y no hay opción para seleccionar las bases de datos de usuarios existentes a las que desea acceder.

La solución para acceder a una instancia local (no Express Edition) del servidor Microsoft SQL reside en el lado del servidor SQL:

  1. Abra el cuadro de diálogo Ejecutar (WinKey + R)
  2. Tipo: "services.msc"
  3. Seleccione el navegador SQL Server
  4. Haga clic en Propiedades
  5. Cambie "deshabilitado" a "Manual" o "Automático"
  6. Cuando se habilite el botón de servicio "Inicio", haga clic en él.

¡Hecho! Ahora puede seleccionar su servidor SQL local de la lista Nombre del servidor en Propiedades de conexión.

alejandrob
fuente
77
Este StackOverflow Q / A trata sobre LocalDB . Creo que su respuesta es sobre habilitar otras instancias de SQL.
orad
Intenté esta solución en el entorno local y hace el REVISIÓN como se esperaba para la pregunta original publicada, no lo que crees que hace. No asuma que Enterprise Edition = entorno empresarial. Algunos de nosotros usamos esa edición para el desarrollo local en una máquina de grupo de trabajo.
alejandrob
Aunque todavía tenía que ingresar (localdb) en lugar de usar el navegador, esto realmente lo solucionó para mí, por lo que responde la pregunta muy bien.
PeterJ
4

Ejecute el CMD como administrador.

  1. desde el menú de inicio 'cmd': espere a que lo encuentre.
  2. Haga clic derecho en cmd y seleccione abrir como administrador
  3. tipo: cd C: \ Archivos de programa \ Microsoft SQL Server \ 120 \ Tools \ Binn
  4. tipo: inicio SqlLocalDB
  5. ahora escriba: SqlLocalDB info
  6. Muestra las instancias de sql en ejecución disponibles ... elige lo que quieras ...
  7. para obtener más información sobre el tipo de instancia: SqlLocalDB info instanceName

  8. ahora desde VS puede configurar su conexión En VS, Ver / Explorador del servidor / (clic derecho) Conexiones de datos / Agregar origen de datos de conexión: Microsoft SQL Server (SqlClient) Nombre del servidor: (localdb) \ MSSQLLocalDB Inicie sesión en el servidor: use Windows Autenticación Presione "Probar conexión", luego OK.

  9. trabajo hecho

guestDoug
fuente
3

La forma más rápida en Visual Studio 2017 es ir a Herramientas -> SQL Server -> Nueva consulta .. Elija de las bases de datos locales y elija el nombre de la base de datos que desee en la parte inferior.

Manera alternativa

El nombre del servidor de Visual Studio 2017 es:

(localdb)\MSSQLLocalDB

Agregue la nueva conexión usando el menú Herramientas -> Conectar a la base de datos ...

Samuel
fuente
Si no instaló SQLExpress en una instancia predeterminada, también puede intentar ... '(localdb)'
Jason Geiger
1

Seguí los pasos anteriores, pero olvidé instalar SQL Server 2014 LocalDB antes de la configuración de Visual Studio 2015.

Mis pasos son los siguientes:

  1. Instale el LocalDB de SQL Server 2014;
  2. Abra Visual Studio 2015 y luego SQL Server Object Explorer ;
  3. Encuentra tu LocalDB bajo la etiqueta de SQL Server.

Espero que esto ayude a alguien.

Mondi
fuente
0

Escenario: Windows 8.1, VS2013 Ultimate, SQL Express instalado y en ejecución, navegador SQL Server deshabilitado. Esto funcionó para mí:

  1. Primero habilité el navegador SQL Server en los servicios.
  2. En Visual Studio: abra la consola de Package Manager y luego escriba: Enable-Migrations ; Luego, escriba Enable-Migrations -ContextTypeName YourContextDbName que creó la carpeta Migraciones en VS.
  3. Dentro de la carpeta Migraciones encontrará el archivo "Configuration.cs", active las migraciones automáticas mediante: AutomaticMigrationsEnabled = true;
  4. Ejecute su aplicación nuevamente, el entorno crea una conexión predeterminada y verá las nuevas tablas de su contexto. Esta nueva conexión apunta a localdb. La cadena de conexión creada muestra: Fuente de datos = (LocalDb) \ v11.0 ... (más parámetros y ruta al archivo mdf creado)

Ahora puede crear una nueva conexión con el nombre del servidor: (LocalDb) \ v11.0 (presione actualizar) Conéctese a una base de datos: seleccione su nueva base de datos en el menú desplegable.

Espero que ayude.

Armando S
fuente
-1

Con SQL Server 2017 y Visual Studio 2015, utilicé localhost\SQLEXPRESS

ingrese la descripción de la imagen aquí

Ben S
fuente