Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
SQL Server Express LocalDB ist eine leichte SQL Server-Engine für die Entwicklung lokaler Windows. Es läuft unter deiner Windows-Benutzeridentität und startet auf Abruf. LocalDB ist kein entfernter Datenbankdienst und läuft nicht unter Linux oder macOS.
Für plattformübergreifende Entwicklung verwenden Sie einen unterstützten SQL Server-Container oder einen entfernten SQL-Endpunkt. Die Installation des Microsoft.Data.SqlClient NuGet-Pakets installiert den Client-Treiber, nicht die LocalDB.
Installieren von LocalDB
Installiere LocalDB über das SQL Server Express-Setup oder den Visual Studio Installer. In Visual Studio wählen Sie eine geeignete Datenentwicklungsarbeitslast oder die einzelne Komponente des SQL Server Express LocalDB aus. Siehe SQL Server Express LocalDB-Installation für aktuelle Downloads und Installationsoptionen.
Die LocalDB-Installation stellt die Engine, SQLUserInstance.dll, und das SqlLocalDB.exe Verwaltungsprogramm bereit. Wenn SqlLocalDB nicht auf PATH ist, führen Sie es im installierten SQL Server-Tools-Verzeichnis aus.
Listen Sie Ihre installierten Versionen und Instanzen auf:
SqlLocalDB versions
SqlLocalDB info
Herstellen einer Verbindung mit der automatischen Instanz
Die automatische Instanz ist benannt MSSQLLocalDB und gehört dem aktuellen Windows-Benutzer. Verwenden Sie Windows integrierte Authentifizierung. LocalDB unterstützt keine Microsoft Entra-Authentifizierung.
Für eine .NET-Konsolenanwendung mit installiertem Microsoft.Data.SqlClient:
using Microsoft.Data.SqlClient;
string connectionString =
@"Server=(localdb)\MSSQLLocalDB;Database=master;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;";
using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();
using var command = new SqlCommand("SELECT DB_NAME();", connection);
Console.WriteLine(await command.ExecuteScalarAsync());
Die Abfrage gibt master aus. Die erste Verbindung kann länger dauern, weil LocalDB die Instanz erstellt oder startet. Wenn der Start die Verbindungszeit überschreitet, überprüfen Sie den Instanzstatus, warten Sie auf Abschluss des Starts und versuchen Sie es erneut.
Dieses Beispiel erlaubt das lokale Entwicklungszertifikat mit TrustServerCertificate=true. Beschränke diese Ausnahme auf lokale Entwicklung. Für einen entfernten SQL-Endpunkt verwenden Sie ein überprüfbares Zertifikat und TrustServerCertificate=false; siehe Verschlüsselung und Zertifikatsvalidierung.
Umgekehrter Schrägstrich in Verbindungszeichenfolgen
Der Verbindungsstring-Wert enthält einen Backslash zwischen (localdb) und dem Instanznamen. Das Escapen hängt davon ab, wo man den Wert schreibt:
| Location | Serverwert |
|---|---|
| Klartext, eine Extensible Markup Language (XML)-Konfiguration oder eine einfach in Anführungszeichen gesetzte PowerShell-Zeichenfolge. | (localdb)\MSSQLLocalDB |
| C#-Verbatimzeichenfolge | @"(localdb)\MSSQLLocalDB" |
| C# regulärer String oder JavaScript Object Notation (JSON) String. | "(localdb)\\MSSQLLocalDB" |
Kopieren Sie keine doppelten C#-Backslashes in eine Klartext-Verbindungszeichenfolge.
Benannte und geteilte Instanzen
Verwende eine benannte Instanz, wenn du eine separate lokale Engine-Instanz für eine Anwendung möchtest. Erstellen Sie es vor der Verbindung:
SqlLocalDB create SqlClientDev
SqlLocalDB start SqlClientDev
SqlLocalDB info SqlClientDev
Verbinden Sie sich mit dieser Klartext-Verbindungszeichenfolge:
Server=(localdb)\SqlClientDev;Database=master;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;
Verschiedene Windows-Nutzer können private Instanzen mit demselben Namen haben. Der Name allein identifiziert nicht die Instanz eines anderen Nutzers.
Eine geteilte Instanz hat einen Alias, der für andere Nutzer auf demselben Computer sichtbar ist. Ein Administrator muss das Teilen konfigurieren, und andere Benutzer benötigen eine entsprechende Windows- oder SQL-Anmeldung. Das Teilen erteilt Datenbankberechtigungen nicht automatisch. Verwenden Sie den gemeinsamen Namensraum:
Server=(localdb)\.\<shared_instance>;Database=<database>;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;
Geben Sie eine Entwicklungsinstanz nur bewusst frei. Überprüfen Sie den lokalen Dateizugriff und die Datenbankberechtigungen. Siehe Geteilte Instanzen von LocalDB.
Hinweise
Verwenden Sie AttachDBFilename, um eine bestehende Datenbankdatei anzuhängen, auf die der Instanzbesitzer zugreifen kann. Geben Sie außerdem einen Datenbanknamen an:
Server=(localdb)\MSSQLLocalDB;Database=<database>;AttachDBFilename=C:\Data\<database>.mdf;Integrated Security=true;Encrypt=true;TrustServerCertificate=true;
Verwenden Sie einen absoluten Dateipfad oder einen entsprechend konfigurierten |DataDirectory| Wert.
AttachDBFilename erzeugt keine fehlende Datenbankdatei. Die Engine muss die Version der Datenbankdatei unterstützen, und eine andere Instanz kann die Datei nicht bereits geöffnet haben.
Wenn Sie beim Anhängen einer Datei weglassen Database , wird die Datenbank aus der LocalDB-Instanz entfernt, wenn die Anwendung geschlossen wird. Gib an Database , wann du eine persistente Datenbankregistrierung möchtest.
User Instance=true ist für LocalDB nicht gültig. Verwenden Sie MultiSubnetFailover=true nicht mit LocalDB; die Verbindung über eine lokale benannte Pipe ist kein Failoverendpunkt für das Transmission Control Protocol (TCP).
Schützen Sie die Datenbank und die Protokolldateien mit Windows-Dateiberechtigungen. Eine Person, die eine ungeschützte Datenbankdatei kopieren kann, kann sie potenziell an eine von ihr kontrollierte Instanz anhängen. SQL-Berechtigungen ersetzen den Dateisystemschutz nicht.
Programmgesteuertes Erstellen einer benannten Instanz
Gilt für: .NET Framework
Für eine .NET Framework-Anwendung deklarieren Sie eine benannte Instanz und deren installierte LocalDB-Engine-Version im system.data.localdb Abschnitt von app.config. Registrieren Sie den Konfigurationsabschnittstyp Microsoft.Data.LocalDBConfigurationSection aus der Microsoft.Data.SqlClient Assembly und fügen Sie dann die Instanz unter localdbinstanceshinzu.
Stimmen Sie den Instanznamen in Server=(localdb)\<instance> mit dem Konfigurationseintrag ab, und verwenden Sie eine auf dem Computer installierte Version der LocalDB-Engine. Kopiere keine alte Treiber-Assembler- oder Engine-Version in eine neue Anwendung.
Moderne .NET verwendet diesen Konfigurationsabschnitt nicht, um Instanzen zu erstellen. Verwenden Sie SqlLocalDB bei der Entwicklereinrichtung bzw. die LocalDB-Management-API, wenn eine Anwendung eine Instanz verwalten muss.
Einschränkungen
LocalDB läuft mit den Berechtigungen des Instanzbesitzers. Es ist für die lokale Entwicklung gedacht, nicht für einen gemeinsamen Produktionsdienst.
- LocalDB ist nur für Windows verfügbar. Eine verwaltete Netzwerk-LocalDB-Verbindung auf einer Nicht-Windows-Plattform wirft
PlatformNotSupportedException. - Remote-Verwaltung wird nicht unterstützt.
- FILESTREAM und Abonnent für Merge-Replikationen werden nicht unterstützt.
- Service Broker unterstützt nur lokale Warteschlangen.
- Datenbankgröße und Ressourcenbeschränkungen folgen der installierten SQL Server Express-Engine, nicht der SqlClient-Paketversion.
| Engine | Maximum an Rechenleistung pro Instanz | Maximaler Pufferpool in Megabyte (MB) | Maximale relationale Datenbankgröße in Gigabyte (GB) |
|---|---|---|---|
| SQL Server 2022 Express LocalDB. | Weniger von 1 Sockel oder 4 Kernen. | 1.410 MB. | 10 GB. |
| SQL Server 2025 Express LocalDB. | Weniger von 1 Sockel oder 4 Kernen. | 1.410 MB. | 50 GB. |
Siehe die Editionsgrenzen für SQL Server 2022 und SQL Server 2025. LocalDB-Tests decken weder die Microsoft Entra-Authentifizierung noch die Remotevalidierung von Transport Layer Security (TLS)-Zertifikaten, das Failover von Verfügbarkeitsgruppen oder Einschränkungen von Clouddiensten ab. Üben Sie diese separat gegen die beabsichtigte Einsatzbereitschaft an.