Access und LocalDB

Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.

Access und LocalDB

Seit SQL Server 2012 gibt es eine kleine, aber feine Instanz des SQL Servers namens LocalDB. Dabei handelt es sich um eine SQL Server-Engine, die zwar einige Unterschiede zur Vollversion des SQL Servers aufweist, aber auch einige Features bietet, die gerade für Access-Entwickler interessant sind. Eines vorweg: Sie können damit nur lokale Datenbanken betreiben, also solche, die auf dem gleichen Rechner wie das Frontend liegen. Ansonsten aber bietet diese Version fast alles, was das Entwicklerherz begehrt.

Der Grund, weshalb ich mich vor einiger Zeit über LocalDB informiert habe, war der, dass ich eine einfache Möglichkeit suchte, eine SQL Server-Instanz zu installieren und zu starten und ohne Umschweife damit arbeiten zu können. Ach ja – und kostenlos sollte sie auch noch sein. Wer schon einmal eine SQL Server-Installation durchgeführt hat, weiß, dass dies eine ziemlich aufwendige und zeitraubende Sache sein kann. Das ist auf jeden Fall nichts, was Sie mal eben durchführen wollen, um kurz etwas zu testen. Die schnelle Installation ist aber auch nur der wichtigste Punkt, weitere folgen weiter unten.

Download von LocalDB

Mit LocalDB verhält es sich anders: Mit der Google-Suche nach localdb download landen Sie schnell auf einer Seite, die den Download von Microsoft SQL Server 2016 Express anbietet. Diesen können Sie beziehen und die Installation starten, um dann im Auswahlmenü LocalDB zu installieren. Alternativ verwenden Sie den direkten Download der Datei SqlLocalDB.msi, die Sie zur Drucklegung dieses Beitrags etwa unter folgendem Link finden:

https://download.microsoft.com/download/E/1/2/E12B3655-D817-49BA-B934-CEB9DAC0BAF3/SqlLocalDB.msi

Installation von LocalDB

Die komplette Installationsdatei ist sage und schreibe nur 45 MB groß! Die Installation brauchen wir an dieser Stelle nicht zu beschreiben, denn diese enthält keinerlei Optionen, an denen Sie Entscheidungen treffen müssten. Dafür gibt es nach der Installation aber auch keinen einzigen neuen Eintrag etwa im Startmenü von Windows. Wozu auch? Das Programm wird ohnehin nur gestartet, wenn Sie von einem Client aus auf die Instanz zugreifen.

Stille Installation

Wenn Sie möchten, können Sie die Installation auch komplett ohne Benutzeroberfläche durchführen. Dazu rufen Sie über die Kommandozeile die folgende Anweisung auf (Sie müssen sich dazu im gleichen Verzeichnis wie die Datei SqlLocalDB.msi befinden):

msiexec /i SqlLocalDB.msi /qn IACCEPTSQLLOCALDBLICENSETERMS=YES

Beachten Sie, dass Sie die Eingabeaufforderung dazu als Administrator ausführen müssen. Dazu suchen Sie den Befehl Eingabeaufforderung, beispielsweise über das Suchfeld von Windows, und klicken dann mit der rechten Maustaste auf den gefundenen Eintrag. Dort finden Sie dann den Kontextmenü-Eintrag Als Administrator ausführen.

Zugriff per Eingabeaufforderung

Nun können Sie bereits über die Eingabeaufforderung auf LocalDB zugreifen. Geben Sie beispielsweise den Befehl sqllocaldb -? ein, um Informationen über die verfügbaren Befehle zu erhalten. Ein Befehl lautet etwa wie folgt:

C:UsersUser>sqllocaldb info
MSSQLLocalDB
v11.0

Dies gibt die Namen aller Instanzen aus. Auf diesem Rechner sind zwei verschiedene Versionen installiert – 2016 ist die aktuelle Instanz, die mit dem Namen MSSQLLocalDB angegeben wird. Die Instanz der Version von 2012 wird mit v11.0 angegeben. Dies sind auch gleich die Namen, unter denen Sie in den später vorgestellten Verbindungszeichenfolgen auf die Instanzen zugreifen können.

Wenn Sie genau wissen möchten, welche Versionen in­stalliert sind, setzen Sie folgende Anweisung ab:

C:UsersUser>sqllocaldb versions
Microsoft SQL Server 2012 (11.0.2100.60)
Microsoft SQL Server 2016 (13.0.1601.5)

Hier erhalten Sie also die vollständigen Versionshinweise.

Um eine Instanz zu starten, verwenden Sie den Start-Parameter und geben den Namen der zu startenden Instanz an:

C:UsersUser>sqllocaldb start "MSSQLLocalDB"
Die LocalDB-Instanz 'mssqllocaldb' wurde gestartet.

Mit Stop können Sie die Instanz anhalten:

C:UsersUser>sqllocaldb stop "MSSQLLocalDB"
Die LocalDB-Instanz 'mssqllocaldb' wurde beendet.

Hier haben wir nun die Standardinstanz gestartet. Sie können auch weitere Instanzen erzeugen. Um etwa eine Instanz namens Beispielinstanz zu starten, verwenden Sie den folgenden Befehl:

C:UsersUser>sqllocaldb create "Beispielinstanz"
Die LocalDB-Instanz 'Beispielinstanz' wurde mit Version 11.0 erstellt.

Eine solche Instanz können Sie natürlich auch wieder löschen:

C:UsersUser>sqllocaldb delete "Beispielinstanz"
Die LocalDB-Instanz 'Beispielinstanz' wurde gelöscht.

Wenn Sie mehrere Versionen installiert haben und eine Instanz für eine spezielle Version erstellen möchten, geben Sie die Version wie folgt an:

C:UsersUser>sqllocaldb create "Beispielinstanz" 13.0
Die LocalDB-Instanz 'Beispielinstanz' wurde mit Version 13.0 erstellt.

Zugriff per SQL Server Management Studio

Für uns ist aber viel inte­ressanter: Wie kann ich nun auf eine solche Instanz zugreifen, um eine Datenbank mit Tabellen und weiteren Objekten zu erstellen? Und wie greife ich dann von Access aus auf diese Datenbank zu? Auch das ist kein Problem. Unter folgendem Link finden Sie eine kostenlose Version des SQL Server Management Studio in der neuesten Version von 2016:

https://msdn.microsoft.com/de-de/library/mt238290.aspx

Nach dem Download und der Installation können Sie SQL Server Management Studio auch direkt starten. Es erscheint nun das Hauptfenster und der Dialog zum Herstellen einer Verbindung mit dem gewünschten Server (s. Bild 1). Hier tragen Sie, wenn Sie nur eine Version von LocalDB installiert haben, den folgenden Server ein:

Das SQL Server Management Studio nach dem Start

Bild 1: Das SQL Server Management Studio nach dem Start

Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.

Bitte geben Sie die Zeichenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Ich habe die Datenschutzbestimmungen zur Kenntnis genommen.