SQL Server Express LocalDB-Instanz-API-Verweis

In der herkömmlichen, dienstbasierten SQL Server-Welt sind einzelne auf einem einzelnen Computer installierte SQL Server-Instanzen physisch getrennt. Das heißt, jede Instanz muss separat installiert und entfernt werden, verfügt über einen separaten Satz Binärdateien und wird unter einem separaten Dienstprozess ausgeführt. Der SQL Server-Instanzname wird verwendet, um anzugeben, mit welcher SQL Server-Instanz der Benutzer eine Verbinden herstellen möchte.

Die SQL Server Express LocalDB-Instanz-API verwendet ein vereinfachtes "leichtes" Instanzmodell. Obwohl einzelne LocalDB-Instanzen auf dem Datenträger und in der Registrierung getrennt sind, verwenden sie denselben Satz freigegebener LocalDB-Binärdateien. Darüber hinaus verwendet LocalDB keine Dienste. LocalDB-Instanzen werden bei Bedarf durch LocalDB-Instanz-API-Aufrufe gestartet. In LocalDB wird der Instanzname verwendet, um anzugeben, mit welcher LocalDB-Instanz der Benutzer arbeiten will.

Eine LocalDB-Instanz gehört immer einem einzelnen Benutzer und ist nur im Kontext dieses Benutzers sichtbar und aufrufbar, es sei denn, die Instanzfreigabe wird aktiviert.

Obwohl LocalDB-Instanzen den herkömmlichen SQL Server-Instanzen technisch nicht entsprechen, ist ihre vorgesehene Verwendung ähnlich. Sie werden als Instanzen bezeichnet, um diese Ähnlichkeit hervorzuheben und ihre Intuivität für SQL Server-Benutzer zu steigern.

LocalDB unterstützt zwei Arten von Instanzen: automatische Instanzen (AI) und benannte Instanzen (BI). Der Bezeichner für eine LocalDB-Instanz ist der Instanzname.

Automatische LocalDB-Instanzen

Automatische LocalDB-Instanzen sind "öffentlich"; werden erstellt und automatisch für den Benutzer verwaltet. Sie können von allen Anwendungen verwendet werden. Eine automatische LocalDB-Instanz ist für jede Version von LocalDB vorhanden, die auf dem Computer des Benutzers installiert ist.

Automatische LocalDB-Instanzen stellen die nahtlose Instanzverwaltung bereit. Der Benutzer muss die Instanz nicht erstellen. Dies ermöglicht Benutzern die einfache Installation von Anwendungen und Migration auf andere Computer. Wenn auf dem Zielcomputer die angegebene Version von LocalDB installiert ist, ist die automatische LocalDB-Instanz für diese Version auch auf diesem Computer verfügbar.

Automatische Instanzverwaltung

Ein Benutzer muss keine automatische LocalDB-Instanz erstellen. Die Instanz wird bei ihrer ersten Verwendung verzögert erstellt, vorausgesetzt, dass die angegebene Version von LocalDB auf dem Computer des Benutzers verfügbar ist. Aus der Sicht des Benutzers ist die automatische Instanz immer vorhanden, wenn die LocalDB-Binärdateien vorhanden sind.

Andere Instanzverwaltungsvorgänge, z. B. Löschen, Freigabe und Freigabe aufheben, funktionieren auch für automatische Instanzen. Beim Löschen einer automatischen Instanz wird die Instanz effektiv zurückgesetzt, wodurch sie beim nächsten Startvorgang neu erstellt wird. Das Löschen einer automatischen Instanz ist möglicherweise erforderlich, wenn die Systemdatenbanken beschädigt sind.

Benennungsregeln für automatische Instanzen

Automatische LocalDB-Instanzen haben ein besonderes Muster für den Instanznamen, der zu einem reservierten Namespace gehört. Dies ist zur Verhinderung von Namenskonflikten mit benannten LocalDB-Instanzen erforderlich.

Der Name der automatischen Instanzname ist die Versionsnummer der LocalDB-Baseline mit vorangestelltem "v". Dies sieht wie ein "v" und zwei Zahlen mit einem Punkt dazwischen aus, wie z. B. v11.0 oder V12.00.

Beispiele für ungültige automatische Instanznamen sind:

  • 11.0 ("v" am Anfang fehlt)

  • v11 (Punkt und zweite Zahl der Versionsnummer fehlt)

  • v11. (zweiten Zahl der Versionsnummer fehlt)

  • v11.0.1.2 (Versionsnummer besteht aus mehr als zwei Teilen)

Benannte LocalDB-Instanzen

Benannte LocalDB-Instanzen sind "privat". Eine Instanz gehört einer Einzelanwendung, die für das Erstellen und Verwalten der Instanz zuständig ist. Benannte LocalDB-Instanzen bieten Isolierung und verbessern die Leistung.

Erstellen einer benannten Instanz

Der Benutzer muss benannte Instanzen explizit über die LocalDB-Verwaltungs-API oder implizit für eine verwaltete Anwendung über die Datei app.config erstellen. Eine verwaltete Anwendung verwendet möglicherweise auch die API.

Jede benannte Instanz verfügt über eine zugeordnete LocalDB-Version. Das heißt, sie verweist auf einen angegebenen Satz LocalDB-Binärdateien. Die Version für die benannte Instanz wird während des Instanzerstellungsprozesses festgelegt.

Benennungsregeln für benannte Instanzen

Ein LocalDB-Instanzname kann bis zu 128 Zeichen aufweisen (die Grenze wird vom sysname-Datentyp festgelegt). Dies ist ein bedeutender Unterschied im Vergleich zu herkömmlichen SQL Server-Instanznamen, die auf NetBIOS-Namen mit 16 ASCII-Zeichen beschränkt sind. Die Ursache für diesen Unterschied ist, dass LocalDB Datenbanken als Dateien behandelt und daher dateibasierte Semantik impliziert. Daher ist es für Benutzer intuitiv, mehr Freiheit beim Auswählen der Instanznamen zu besitzen.

Ein LocalDB-Instanzname kann alle Unicode-Zeichen enthalten, die innerhalb der Dateinamenkomponente gültig sind. Zu den ungültigen Zeichen in einer Dateinamenkomponente gehören in der Regel folgende: ASCII/Unicode-Ziffern 1 bis 31, sowie Anführungszeichen ("), weniger als (<), größer als (>), Pipe (|), Rückwärtsschritt (\b), Tabulator (\t), Doppelpunkt (:), Sternchen (*), Fragezeichen (?), umgekehrter Schrägstrich (\) und Schrägstrich (/). Beachten Sie, dass das NULL-Zeichen (\0) zugelassen wird, da es zur Zeichenfolgenbeendigung verwendet wird. Alles nach dem ersten NULL-Zeichen wird ignoriert.

HinweisHinweis

Die Liste der ungültigen Zeichen hängt möglicherweise vom Betriebssystem ab und kann sich in zukünftigen Versionen ändern.

Voranstehende und nachfolgende Leerstellen in Instanznamen werden ignoriert und abgeschnitten.

Um Benennungskonflikte zu vermeiden, können LocalDB-Instanzen keinen Namen haben, der dem Namensmuster für automatische Instanzen folgt, wie zuvor in "Benennungsregeln für automatische Instanzen" beschrieben. Beim Versuch, eine benannte Instanz mit einem Namen zu erstellen, der dem Benennungsmuster für automatische Instanzen folgt, wird letztendlich eine Standardinstanz erstellt.

SQL Server Express LocalDB-Referenzthemen