Excel: So stellen Sie eine Verbindung zu einer lokalen SQL Server-Datenbank her

8

Ich habe eine LocalDB erstellt , mit der ich in MS SQL Server Management Studio 2014, Linqpad und Visual Studio 2013 arbeiten kann.

Hier ist der Teil des Dialogfelds "Verbindungseigenschaft" in SSMS, in dem der Servername angezeigt wird: Geben Sie hier die Bildbeschreibung ein

Ich möchte in der Lage sein, innerhalb von Excel eine Verbindung zu dieser Datenbank herzustellen. Das Problem ist, dass der "Datenverbindungs-Assistent" in Excel keine Verbindung herstellen kann.

Hier habe ich den gleichen Servernamen eingegeben, der unter "Verbindungseigenschaften" in SSMS angegeben wurde ....

Geben Sie hier die Bildbeschreibung ein

Und hier ist der Fehler, den ich bekomme ... Geben Sie hier die Bildbeschreibung ein

Fragen:

  • Kann Excel überhaupt eine Verbindung zu einer lokalen Datenbank herstellen? Ich weiß , es KANN auf SQL-Server - Datenbanken zu verbinden. Gibt es eine Einschränkung bei LocalDB, die dies verhindert? Ich dachte, der Sinn von LocalDB wäre es, die Entwicklung zu ermöglichen, ohne eine eigenständige Datenbank einrichten zu müssen.

  • Gibt es eine alternative Möglichkeit, eine Verbindung herzustellen? Oder erfordert mein Servername eine nervige Änderung?

Angelo
quelle
1
Versuchen Sie .\mssqllocaldb, oder localhost\mssqllocaldb, oder <comptuersIPAddress>\mssqllocaldb. Welchen Servernamen haben Sie für Ihre (erfolgreichen) VS- und Linqpad-Verbindungen verwendet?
25cʜιᴇ007
@ Ƭᴇcʜιᴇ007, danke, ich habe genau den Servernamen kopiert / eingefügt, der beim Öffnen des Eigenschaftendialogs für die Datenbank in SSMS gefunden wurde. Nein, gehen Sie auf alle drei Beispiele ein. Der Servername, der auf Linqpad und SSMS funktioniert, ist genau dieser ... (localdb) \ mssqllocaldb
Angelo

Antworten:

6

Was für eine unentgeltliche PITA!

Ich konnte es mit dem "Datenverbindungs-Assistenten" zum Laufen bringen, indem ich die folgenden Schritte ausführte ...

  1. Wählen Sie im Datenverbindungs-Assistenten "Andere / Erweitert" und klicken Sie dann auf "Weiter" . Ich dachte, dass localDB, wie es von sqlserver express erstellt wurde, als "SQL Server" bezeichnet wird. Scheinbar nicht! obwohl ich nicht verstehen kann warum.

Geben Sie hier die Bildbeschreibung ein

  1. Wählen Sie als Anbieter "SQL Server Native Client 11.0". OK, ich hatte gerade NICHT "SQL Server" auf der vorherigen Registerkarte ausgewählt. Außerdem führe ich zufällig Version 12 von SQL Server Express aus und es gibt keine "12" in der Liste - vielleicht bezieht es sich ausschließlich auf die Client-Version, mit der subtilen Implikation, dass Client 11 eine Verbindung zu Server 12 herstellen kann? Noch ein kognitiver Papierschnitt.

Geben Sie hier die Bildbeschreibung ein

  1. Geben Sie denselben Servernamen ein, der in SSMS oder Linqpad funktioniert. Wählen Sie Windows Integrated Security. Test Connection funktioniert jetzt und es ist möglich, die Datenbank auszuwählen und eine Tabelle in Excel abzulegen.

Geben Sie hier die Bildbeschreibung ein

Es ist nicht schwer, dies zu tun, aber es scheint keinen logischen Fluss zu geben, den man herumflattern muss, bis etwas klickt.

Angelo
quelle
Sehr geehrte Damen und Herren, Sie stellen eine Verbindung zu SQL Server 2014 her, das mitgeliefert wird SQLNCLI12, und in Ihren Screenshots haben Sie "Native Client 11" ausgewählt. Aus SQLNCLI11irgendeinem Grund haben Sie nicht den "Native Client 12", der für 2014 hervorragend aussieht.
tbc
1

Dies ist die Verbindungszeichenfolge (SQLServer 2012 / Excel 2013):
Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName={mdf file full path}

Oh, auf meinem PC musste ich verwenden ;Trusted_Connection=Yes, es macht möglicherweise keinen Sinn, da sowohl auf meinem Laptop als auch auf meinem PC genau die gleichen Versionen von SQLServer und Excel ausgeführt werden.


Bearbeiten

Ich kann den Fehler nicht reproduzieren (ich habe sogar SQL Server 2014 auf einer VM installiert und es funktioniert immer noch). Die einzige Option, die Sie hinzufügen und die Ihnen helfen könnte, ist Provider=SQLNCLI11;ODER Provider=SQLNCLI12;Sie können herausfinden, welche Version installiert ist, indem Sie sqllocaldb vin der Befehlszeile ausführen .
Das würde so etwas hervorbringen wie:Microsoft SQL Server 2014 (12.0.2000.8)

tbc
quelle
danke, aber es gibt immer noch einen Fehler. Ich musste Ihren Teil "server =" entfernen, um zu vermeiden, dass "parseConnectParams ()" im Fehlerdialog angezeigt wird. Als ich das tat, gab es den gleichen Fehler wie zuvor.
Angelo
@Angelo Ich habe meine Antwort aktualisiert, bitte bis zum Ergebnis, sobald Sie es versuchen.
tbc