Freigeben über


SQL Server Express LocalDB

Gilt für:SQL Server

Microsoft SQL Server 2016 Express LocalDB ist ein Feature von SQL Server Express speziell für Entwickler. Es ist auf SQL Server Express Edition mit fortgeschrittenen Diensten verfügbar. In SQL Server 2025 (17.x) und höheren Versionen ist sie in SQL Server Express Edition verfügbar.

Bei der Installation von LocalDB wird ein minimalen Satz von Dateien kopiert, der für den Start von SQL Server-Datenbank-Engine erforderlich ist. Sobald LocalDB installiert ist, können Sie mithilfe einer speziellen Verbindungszeichenfolge eine Verbindung herstellen. Wenn eine Verbindung hergestellt wird, wird die erforderliche SQL Server-Infrastruktur automatisch erstellt und gestartet. Sie ermöglicht der Anwendung, die Datenbank zu verwenden, und zwar ohne komplexe Konfigurationstasks. Mit Developer Tools können Entwickler SQL Server-Datenbank-Engine bereitstellen, womit sie Transact-SQL-Code schreiben und testen können, und zwar ohne dabei eine vollständige Serverinstanz von SQL Serververwalten zu müssen.

Installationsmedien

LocalDB ist ein Feature, das Sie während der Installation von SQL Server Express auswählen können. Es ist verfügbar, wenn Sie die Medien herunterladen. Wenn Sie die Medien herunterladen, wählen Sie Express Advanced oder das LocalDB Paket aus.

Customers using Visual Studio 2019 and Visual Studio 2022 should install SQL Server 2019 Express-Edition.

Das LocalDB-Installationsprogramm SqlLocalDB.msi ist im Installationsmedium für alle Editionen außer Express Core verfügbar. Sie befindet sich im Ordner <installation_media_root>\<LCID>_ENU_LP\x64\Setup\x64 folder. LCID ist ein Gebietsschemabezeichner oder Sprachcode. Ein LCID-Wert von 1033 bezieht sich zum Beispiel auf das en-US locale.

Alternativ dazu können Sie LocalDB über den Visual Studio-Installer im Rahmen der Workload Datenspeicherung und -verarbeitung, der Workload ASP.NET und Webentwicklung oder als einzelne Komponente installieren.

Installieren von LocalDB

Installieren Sie LocalDB über den Installations-Assistenten oder mithilfe des Programms SqlLocalDB.msi. LocalDB ist eine Option bei der Installation von SQL Server Express LocalDB.

Wählen Sie während der Installation auf der Seite Featureauswahl/Freigegebene Features „LocalDB“ aus. Es darf nur eine Installation der LocalDB-Binärdateien für eine Hauptversion von SQL Server-Datenbank-Engine vorhanden sein. Mehrfache Datenbank-Engine-Prozesse können gestartet werden und verwenden dann die gleichen Binärdateien. Für eine Instanz von SQL Server-Datenbank-Engine, die als LocalDB gestartet wurde, gelten die gleichen Einschränkungen wie für SQL Server Express.

Eine Instanz von SQL Server Express LocalDB wird mit dem Hilfsprogramm SqlLocalDB.exe verwaltet. SQL Server Express LocalDB sollte anstelle des veralteten SQL Server Express-Benutzerinstanzfeatures verwendet werden.

Beschreibung

Das LocalDB-Setupprogramm installiert mithilfe von SqlLocalDB.msi die notwendigen Dateien auf dem Computer. Nach der Installation ist LocalDB eine Instanz von SQL Server Express, mit der SQL Server-Datenbanken erstellt und geöffnet werden können. Die Systemdatenbankdateien für die Datenbank werden im lokalen AppData -Pfad gespeichert, der normalerweise ausgeblendet ist. Beispiel: C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. Benutzerdatenbankdateien werden an dem vom Benutzer angegebenen Speicherort gespeichert, in der Regel im Ordner C:\Users\<user>\Documents\.

Weitere Informationen zur Einbindung von LocalDB in eine Anwendung finden Sie unter Visual StudioÜbersicht über lokale Daten und Erstellen einer Datenbank und Hinzufügen von Tabellen in Visual Studio.

Weitere Informationen zur LocalDB-API finden Sie in der SQL Server Express LocalDB-Referenz.

Das Hilfsprogramm SqlLocalDB kann neue Instanzen von LocalDB erstellen, eine Instanz von LocalDB starten und beenden und enthält Optionen zur Verwaltung von LocalDB. Weitere Informationen über das SqlLocalDB utility, see SqlLocalDB utility.

Die Instanzsortierung für LocalDB ist auf SQL_Latin1_General_CP1_CI_AS festgelegt und kann nicht geändert werden. Auf Datenbankebene, Spaltenebene und Ausdrucksebene werden Sortierungen normal unterstützt. Enthaltene Datenbanken folgen den Regeln für Metadaten und tempdb Kollationen, die in Kollationen für enthaltene Datenbanken.

Beschränkungen

  • LocalDB kann nicht remote über SQL Server Management Studio verwaltet werden.

  • LocalDB kann nicht als Abonnent für die Mergereplikation fungieren.

  • FILESTREAM wird von LocalDB nicht unterstützt.

  • LocalDB lässt für Service Broker nur lokale Warteschlangen zu.

  • Eine Instanz von LocalDB im Besitz der integrierten Konten, wie z. B. NT AUTHORITY\SYSTEM, kann aufgrund der Windows-Dateisystemumleitung Verwaltbarkeitsprobleme aufweisen. Verwenden Sie stattdessen als Besitzer ein normales Windows-Benutzerkonto.

Automatische und benannte Instanzen

LocalDB unterstützt zwei Arten von Instanzen: automatische Instanzen und benannte Instanzen. Unterschiedliche Benutzer eines Computers können über Instanzen mit dem gleichen Namen verfügen. Jede Instanz wird als der jeweilige Benutzer in einem eigenen Prozess ausgeführt.

Automatische Instanzen

Automatische Instanzen von LocalDB sind öffentlich. Sie werden automatisch für den Benutzer erstellt und verwaltet und können von jeder Anwendung verwendet werden. Eine automatische Instanz von LocalDB ist für jede Version von LocalDB vorhanden, die auf dem Computer des Benutzers installiert ist. Automatische Instanzen von LocalDB ermöglichen eine nahtlose Instanzverwaltung. Es besteht keine Notwendigkeit, die Instanz zu erstellen; sie funktioniert einfach. Dieses Feature ermöglicht einfache Anwendungsinstallationen und eine Migration auf einen anderen Computer. Wenn auf dem Zielcomputer die angegebene Version von LocalDB installiert ist, ist die automatische Instanz von LocalDB für diese Version auch auf dem Zielcomputer verfügbar. Automatische Instanzen von LocalDB haben ein besonderes Muster für den Instanznamen, der zu einem reservierten Namespace gehört. Automatische Instanzen verhindern Namenskonflikte mit benannten LocalDB-Instanzen. Der Name der automatischen Instanz lautet MSSQLLocalDB.

Benannte Instanzen

Benannte Instanzen von LocalDB sind privat. Sie gehören einer einzigen Anwendung, die für die Erstellung und Verwaltung der Instanz verantwortlich ist. Benannte Instanzen sind zum Teil von anderen Instanzen isoliert und können durch die Reduzierung von Ressourcenkonflikten, die mit anderen Datenbankbenutzern auftreten können, die Leistung verbessern. Sie müssen benannte Instanzen explizit über die LocalDB-Verwaltungs-API oder implizit über die app.config -Datei für eine verwaltete Anwendung erstellen (obwohl verwaltete Anwendungen auch die API verwenden können, falls gewünscht). Jede benannte Instanz von LocalDB verfügt über eine zugeordnete Version von LocalDB, die auf einen angegebenen Satz von LocalDB-Binärdateien verweist. Ein Instanzname von LocalDB hat den Datentyp sysname und kann bis zu 128 Zeichen aufweisen. (Dieser Instanzname unterscheidet sich von den regulären benannten Instanzen von SQL Server, deren Namen auf reguläre NetBIOS-Namen mit 15 ASCII-Zeichen begrenzt sind). Der Name einer Instanz von LocalDB kann alle Unicode-Zeichen enthalten, die in einem Dateinamen zulässig sind. Eine benannte Instanz, die einen automatischen Instanznamen verwendet, wird eine automatische Instanz.

Freigegebene Instanzen von LocalDB

Von LocalDBwird das Freigeben von Instanzen unterstützt, um Szenarien zu unterstützen, in denen mehrere Benutzer eines Computer sich mit einer einzelnen Instanz von LocalDB verbinden müssen. Ein Instanzbesitzer kann anderen Benutzern auf dem Computer ermöglichen, eine Verbindung mit der Instanz herzustellen. Sowohl automatische als auch benannte Instanzen von LocalDB können freigegeben werden. Zum Freigeben einer Instanz von LocalDB müssen Benutzer einen freigegebenen Namen (Alias) dafür auswählen. Da der freigegebene Name für Benutzer des Computers sichtbar ist, muss dieser freigegebene Name auf dem Computer eindeutig sein. Der freigegebene Name für eine Instanz von LocalDB verfügt über das gleiche Format wie die benannte Instanz von LocalDB.

Nur ein Administrator auf dem Computer kann eine freigegebene Instanz von LocalDB erstellen. Die Freigabe einer freigegebenen Instanz von LocalDB kann von einem Administrator oder dem Besitzer der freigegebenen Instanz von LocalDB entfernt werden. Verwenden Sie zum Freigeben oder Aufheben der Freigabe einer Instanz von LocalDB die Methoden LocalDBShareInstance und LocalDBUnShareInstance der LocalDB-API oder die Optionen zum Freigeben oder Aufheben einer Freigabe des Hilfsprogramms SqlLocalDB.

Starten von LocalDB und Herstellen einer Verbindung mit LocalDB

In diesem Abschnitt wird beschrieben, wie Sie eine Verbindung zu einer automatischen Instanz, einer benannten Instanz oder einer gemeinsamen Instanz herstellen.

Herstellen einer Verbindung mit der automatischen Instanz

Die einfachste Möglichkeit zur Verwendung von LocalDB besteht darin, mit der Verbindungszeichenfolge Server=(localdb)\MSSQLLocalDB;Integrated Security=true eine Verbindung mit der automatischen Instanz herzustellen, deren Besitzer der aktuelle Benutzer ist. Um eine bestimmte Datenbank herstellen einer Verbindung mit dem Dateinamen verbinden mithilfe einer Verbindungszeichenfolge ähnlich wie Server=(LocalDB)\MSSQLLocalDB;Integrated Security=true;AttachDbFileName=D:\Data\MyDB1.mdf.

Hinweis

Wenn ein Benutzer zum ersten Mal auf einem Computer versucht, eine Verbindung mit LocalDB herzustellen, muss die automatische Instanz sowohl erstellt als auch gestartet werden. Die zusätzliche Zeit, die für das Erstellen der Instanz benötigt wird, kann dazu führen, dass der Verbindungsversuch abgebrochen und eine Timeoutmeldung ausgegeben wird. Warten Sie in diesem Fall einige Sekunden, bis der Erstellungsvorgang vollständig abgeschlossen ist, und stellen Sie dann erneut eine Verbindung her.

Erstellen einer benannten Instanz und Herstellen einer Verbindung

Zusätzlich zur automatischen Instanz unterstützt LocalDB auch benannte Instanzen. Mit dem Programm SqlLocalDB.exe können Sie eine benannte Instanz von LocalDB erstellen, starten und beenden. Weitere Informationen über SqlLocalDB.exe, see SqlLocalDB utility.

REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1

Die letzte Zeile im vorherigen Codebeispiel gibt Informationen zurück, die der folgenden Tabelle ähneln.

Kategorie value
Name LocalDBApp1
Version <Current version>
Freigegebener Name ""
Eigentümer <Your Windows user>
Automatische Erstellung No
Status Running
Letzte Startzeit <Date and time>
Instanz-Pipe-Name np:\\.\pipe\LOCALDB#F365A78E\tsql\query

Hinweis

Wenn Ihre Anwendung eine Version von .NET Framework vor 4.0.2 verwendet, müssen Sie eine direkte Verbindung mit der benannten Pipe der LocalDB herstellen. Der Wert des Pipenamens der Instanz ist die Named Pipe, auf die die Instanz von LocalDB lauscht. Der Teil des Instanz-Pipe-Namens nach LOCALDB# ändert sich jedes Mal, wenn die Instanz von LocalDB gestartet wird. Sie stellen eine Verbindung mit der Instanz von LocalDB mithilfe von SQL Server Management Studio her, indem Sie den Pipenamen der Instanz im Feld Servername des Dialogfelds Verbindung herstellen mit Datenbank-Engine eingeben. In Ihrem benutzerdefinierten Programm können Sie mit einer Verbindungszeichenfolge ähnlich SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query"); eine Verbindung mit der Instanz von LocalDB herstellen.

Herstellen einer Verbindung mit einer freigegebenen Instanz von LocalDB

Fügen Sie zum Herstellen einer Verbindung mit einer freigegebenen Instanz von LocalDB der Verbindungszeichenfolge \.\ (umgekehrter Schrägstrich + Punkt + umgekehrter Schrägstrich) hinzu, um auf den für die freigegebenen Instanzen reservierten Namespace zu verweisen. Um beispielsweise eine Verbindung zu einer gemeinsam genutzten Instanz von LocalDB mit dem Namen AppDataherzustellen, verwenden Sie eine Verbindungszeichenfolge wie (localdb)\.\AppData als Teil der Verbindungszeichenfolge. Benutzer, die eine Verbindung mit einer freigegebenen Instanz von LocalDB herstellen, die nicht in ihrem Besitz ist, müssen über eine Windows-Authentifizierung oder über einen Anmeldenamen für die SQL Server-Authentifizierung verfügen.

Problembehandlung

Informationen zum Behandeln von Problemen mit LocalDB finden Sie unter Bekannte Probleme bei der Einrichtung und Migration von SQL Server 2012.

Berechtigungen

Eine Instanz von SQL Server Express LocalDB ist eine von einem Benutzer zur eigenen Verwendung erstellte Instanz. Jeder Benutzer auf dem Computer kann eine Datenbank mithilfe einer LocalDB-Instanz erstellen, Dateien unter seinem Benutzerprofil speichern und die gemäß den Anmeldeinformationen erlaubten Prozesse ausführen. Der Zugriff auf die LocalDB-Instanz ist standardmäßig auf ihren Besitzer beschränkt. Die in LocalDB enthaltenen Daten sind per Dateisystemzugriff auf die Datenbankdateien geschützt. Wenn die Datenbankdateien eines Benutzers an einem freigegebenen Speicherort gespeichert werden, kann die Datenbank von jedem Benutzer mit Dateisystemzugriff auf diesen Speicherort geöffnet werden, und zwar über die jeweils eigene Instanz von LocalDB. Wenn die Datenbankdateien sich an einem geschützten Speicherort befinden, z. B. dem Datenordner des Benutzers, können nur dieser Benutzer und Administratoren mit Zugriffsrechten für diesen Ordner die Datenbank öffnen. Die LocalDB-Dateien können jeweils nur von einer LocalDB-Instanz geöffnet werden.

LocalDB wird immer unter dem Sicherheitskontext des Benutzers ausgeführt. LocalDB wird nie mit Anmeldeinformationen der lokalen Administratorgruppe ausgeführt. Das bedeutet, dass der Zugriff auf alle von einer LocalDB-Instanz verwendeten Datenbankdateien über das eigene Windows-Konto des Benutzers möglich sein muss, unabhängig von der Mitgliedschaft in der lokalen Gruppe „Administratoren“.