Gewusst wie: Erstellen und Bereitstellen in einer lokalen Datenbank

SQL Server stellt eine lokale bedarfsgesteuerte Serverinstanz bereit, die als „SQL Server Express Local Database Runtime (LocalDB)“ bezeichnet wird. Diese wird beim Debuggen eines SQL Server-Datenbankprojekts aktiviert. Diese lokale Serverinstanz kann als Sandkasten zum Erstellen, Testen und Debuggen von Projekten genutzt werden.

Sie ist unabhängig von installierten SQL Server-Instanzen, und außerhalb von SQL Server Data Tools (SSDT) kann nicht darauf zugegriffen werden. Eine solche Anordnung eignet sich ideal für Entwickler mit eingeschränktem oder überhaupt keinem Zugriff auf Produktionsdatenbanken, die jedoch ihre Projekte lokal testen möchten, bevor sie von entsprechend berechtigten Mitarbeitern in der Produktionsumgebung bereitgestellt werden. Wenn Sie eine Datenbanklösung für Azure SQL entwickeln, können Sie zudem die Vorteile dieses lokalen Servers nutzen, um das Datenbankprojekt vor dem Bereitstellen in der Cloud lokal zu entwickeln und zu testen.

Begrenzungen

Eine Datenbank unter dem Knoten für lokale Datenbanken im SQL Server-Objekt-Explorer spiegelt das entsprechende Datenbankprojekt wider und steht in keiner Beziehung zu der gleichnamigen Datenbank auf einer verbundenen Serverinstanz.

Warnung

Bei den folgenden Vorgehensweisen werden Entitäten verwendet, die in vorherigen Vorgehensweisen in den Abschnitten Entwicklung verbundener Datenbanken und Projektorientierte Entwicklung von Offlinedatenbanken erstellt wurden.

Verwendung der lokalen Datenbank

  1. Im SQL Server-Objekt-Explorer wird unter dem Knoten SQL Server ein neuer Knoten mit dem Namen Lokal angezeigt. Hierbei handelt es sich um die lokale Datenbankinstanz.

  2. Erweitern Sie die Knoten Lokal und Datenbanken. Beachten Sie die Anzeige einer Datenbank mit demselben Namen wie das Projekt "TradeDev". Erweitern Sie die Knoten unter dieser Datenbank. Im Fenster Datentoolvorgänge wird der Status von derzeit ausgeführten Erweiterungs-/Importvorgängen für sämtliche unter dem Knoten Lokal aufgeführten Datenbanken angezeigt. Sie enthalten keine der Tabellen und Entitäten, die Sie in früheren Prozeduren erstellt haben.

  3. Drücken Sie F5, um das Datenbankprojekt "TradeDev" zu debuggen.

    Standardmäßig verwendet SSDT zum Debuggen von Datenbankprojekten die lokale Datenbankserverinstanz. In diesem Fall versucht SSDT zunächst, das Projekt zu erstellen. Wenn kein Fehler auftritt, werden das Projekt (und seine Entitäten) in der lokalen Datenbank bereitgestellt. Wenn Sie später dasselbe Projekt debuggen, erkennt SSDT alle seit der letzten Debugsitzung vorgenommenen Änderungen und stellt nur diese Änderungen in der lokalen Datenbank bereit.

  4. Erweitern Sie wieder die Knoten unter TradeDev auf dem lokalen Datenbankserver wieder. Dieses Mal stellen Sie fest, dass die Tabellen, Sichten und Funktionen auf dem lokalen Datenbankserver bereitgestellt wurden.

  5. Klicken Sie mit der rechten Maustaste auf den Knoten TradeDev, und wählen Sie Neue Abfrage aus.

  6. Fügen Sie diesen Code im Skriptbereich ein, und wählen die Schaltfläche Abfrage ausführen aus, um die Abfrage auszuführen.

    SELECT * FROM dbo.GetProductsBySupplier(1);
    
  7. Im Bereich Meldung wird (0 row(s) affected) angezeigt, während im Bereich Ergebnisse keine Zeilen zurückgegeben werden. Das ist darauf zurückzuführen, dass die Abfrage für die lokale Datenbank und nicht für die verbundene Datenbank ausgeführt wird, die die tatsächlichen Daten enthält.

    Sie können sich davon überzeugen, indem Sie unter dieser lokalen TradeDev-Datenbank mit der rechten Maustaste auf die Tabelle Products klicken und Daten anzeigen auswählen. Diese Tabelle ist leer.

Replizieren tatsächlicher Daten in der lokalen Datenbank

  1. Erweitern Sie im SQL Server-Objekt-Explorer Ihre verbundene SQL Server-Instanz, und suchen Sie die Datenbank TradeDev.

    Klicken Sie mit der rechten Maustaste auf die Tabelle Suppliers, und wählen Sie Daten anzeigen.

  2. Wählen Sie am oberen Rand des Daten-Editors die Schaltfläche Skript aus (die zweite Schaltfläche von rechts). Kopieren Sie die INSERT-Anweisungen aus dem Skript.

  3. Erweitern Sie die Serverinstanz Lokal, und klicken Sie mit der rechten Maustaste auf den Knoten TradeDev. Wählen Sie Neue Abfrage aus.

  4. Fügen Sie die INSERT-Anweisungen in diesem Abfragefenster ein, und führen Sie die Abfrage aus.

  5. Führen Sie die obigen Schritte erneut aus, um Daten aus den Tabellen Products und Fruits in der verbundenen Datenbank TradeDev in der lokalen TradeDev-Datenbank zu replizieren.

  6. Klicken Sie mit der rechten Maustaste auf die Serverinstanz Lokal, und wählen Sie Aktualisieren aus. Untersuchen Sie die Tabellen mit Daten anzeigen, um sich zu vergewissern, dass die lokale Datenbank aufgefüllt wurde.

  7. Klicken Sie mit der rechten Maustaste auf den Knoten TradeDev der Serverinstanz „Lokal“, und wählen Sie Neue Abfrage aus.

  8. Fügen Sie diesen Code im Skriptbereich ein, und wählen die Schaltfläche Abfrage ausführen aus, um die Abfrage auszuführen.

    SELECT * FROM dbo.GetProductsBySupplier(1);
    
  9. Im Bereich Ergebnis unter dem Bereich für den Transact-SQL-Editor wurden die Zeilen Apples und Potato Chips aus der Tabelle Products zurückgegeben.