Excel: cómo conectarse a un sqlserver localDB

8

He creado un LocalDB con el que puedo trabajar en MS sqlserver management studio 2014, linqpad y visual studio 2013.

Aquí está la parte del cuadro de diálogo "propiedad de conexión" en SSMS que muestra el nombre del servidor: ingrese la descripción de la imagen aquí

Me gustaría poder conectarme a esta base de datos desde Excel. El problema es que el "Asistente de conexión de datos" en Excel no puede conectarse.

Aquí, he escrito el mismo nombre de servidor que se le dio a las "propiedades de conexión" en SSMS ...

ingrese la descripción de la imagen aquí

Y aquí está el error que recibo ... ingrese la descripción de la imagen aquí

Preguntas:

  • ¿Excel puede conectarse a un localDB? Sé que PUEDE conectarse a las bases de datos del servidor sql. ¿Hay alguna limitación acerca de LocalDB que evite esto? Pensé que el objetivo de LocalDB era permitir el desarrollo sin el esfuerzo de configurar una base de datos independiente.

  • ¿Hay alguna forma alternativa de conectarse? ¿O el nombre de mi servidor requiere alguna modificación molesta?

Angelo
fuente
1
Intenta .\mssqllocaldb, o localhost\mssqllocaldb, o <comptuersIPAddress>\mssqllocaldb. ¿Qué nombre de servidor usó para sus (exitosas) conexiones VS y Linqpad?
Ƭᴇcʜιᴇ007
@ Ƭᴇcʜιᴇ007, gracias, copié / pegué exactamente el nombre del servidor encontrado cuando abrí el cuadro de diálogo de propiedades para la base de datos en SSMS. No continúe con los tres ejemplos. El nombre del servidor que funciona en linqpad y SSMS es exactamente esto ... (localdb) \ mssqllocaldb
Angelo

Respuestas:

6

¡Qué PITA gratuita!

Pude hacerlo funcionar utilizando el "Asistente de conexión de datos" siguiendo estos pasos ...

  1. Seleccione "Otro / Avanzado" en el Asistente de conexión de datos, luego presione "siguiente" . Pensé que localDB como fue creado por sqlserver express iría como "SQL Server". ¡Aparentemente no! aunque no puedo entender por qué.

ingrese la descripción de la imagen aquí

  1. Seleccione "SQL Server Native Client 11.0" como proveedor. OK, simplemente NO había seleccionado "SQL Server" en la pestaña anterior. Además, estoy ejecutando la versión 12 del servidor SQL Express y no hay un "12" en la lista, ¿tal vez se refiere estrictamente a la versión del cliente, con la sutil implicación de que el cliente 11 puede conectarse al servidor 12? Sin embargo, otro corte de papel cognitivo.

ingrese la descripción de la imagen aquí

  1. Ingrese el mismo nombre de servidor que funciona en SSMS o linqpad. Seleccione la seguridad integrada de Windows. Test Connection ahora funciona y es posible seleccionar la base de datos y volcar una tabla en Excel.

ingrese la descripción de la imagen aquí

No es difícil hacer esto, pero no parece haber ningún flujo lógico, hay que tambalearse hasta que algo haga clic.

Angelo
fuente
Estimado, se está conectando a SQL Server 2014, que viene con SQLNCLI12, y en sus capturas de pantalla seleccionó 'Native Client 11', que es SQLNCLI11, y por alguna razón , no tiene el 'Native Client 12' que Excel busca para 2014.
confirmar
1

Esta es la cadena de conexión (SQLServer 2012 / Excel 2013):
Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName={mdf file full path}

En mi PC, tuve que usarlo ;Trusted_Connection=Yes, puede que no tenga ningún sentido, ya que tanto mi computadora portátil como mi PC están ejecutando las mismas versiones EXACTAS de SQLServer y Excel.


Editar

No puedo reproducir el error (incluso instalé SQL Server 2014 en una VM y todavía funciona). La única opción que puede agregar y que puede ayudarlo es Provider=SQLNCLI11;O Provider=SQLNCLI12;puede averiguar qué versión está instalada ejecutando sqllocaldb ven la línea de comandos.
Eso produciría algo como:Microsoft SQL Server 2014 (12.0.2000.8)

por confirmar
fuente
gracias, pero aun así da un error. Tuve que eliminar su parte "server =" para evitar obtener "parseConnectParams ()" en el cuadro de diálogo de error. Cuando hice eso, me dio el mismo error que tenía antes.
Angelo
@Angelo Actualicé mi respuesta, por favor hazlo hasta el resultado una vez que lo intentes.
confirmar