Freigeben über


Lernprogramme: Start aus einer bestehenden Datenbank

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance

SQL-Projekte enthalten deklarative Dateien (CREATE-Anweisung) für alle Objekte in einer Datenbank, z. B. Tabellen, Anzeigen und gespeicherte Prozeduren. Diese Dateien können zum Erstellen neuer Datenbanken, zum Aktualisieren vorhandener Datenbanken oder sogar zum Nachverfolgen der Datenbank in der Quellcodeverwaltung verwendet werden. Häufig beginnen wir mit einem SQL-Projekt, wenn wir über eine vorhandene Datenbank verfügen und Objekte im SQL-Projekt erstellen möchten, die der Datenbank mit minimalem Aufwand entsprechen.

Einige SQL-Projekt-Tools umfassen einen einzelnen Schritt zum Erstellen eines neuen SQL-Projekts aus einer vorhandenen Datenbank. Andere Tools erfordern einige Schritte zum Erstellen eines neuen SQL-Projekts und anschließendes Importieren von Objekten aus einer vorhandenen Datenbank. Mit Ausnahme der Visual Studio-Anweisungen (SQL Server Data Tools) konzentriert sich das Handbuch auf SQL-Projekte im SDK-Stil.

Mit Option 1 in diesem Lernprogramm können Sie Folgendes:

Schritt 1: Erstellen eines neuen SQL-Projekts aus einer vorhandenen Datenbank Schritt 2: Erstellen des SQL-Projekts

Mit Option 2 in diesem Lernprogramm können Sie Folgendes:

  • Schritt 1: Erstellen eines neuen leeren SQL-Projekts
  • Schritt 2: Importieren von Objekten aus einer vorhandenen Datenbank
  • Schritt 3: Erstellen des SQL-Projekts

Voraussetzungen

# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage

# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates

Hinweis

Um das Lernprogramm abzuschließen, benötigen Sie Zugriff auf eine Azure SQL- oder SQL Server-Instanz. Sie können lokal kostenlos mit SQL Server Developer-Edition unter Windows oder in Containern entwickeln.

Option 1: Erstellen eines neuen SQL-Projekts aus einer vorhandenen Datenbank

Schritt 1: Erstellen eines neuen SQL-Projekts aus einer vorhandenen Datenbank

Klicken Sie im SQL Server-Objekt-Explorer in Visual Studio mit der rechten Maustaste auf die Datenbank, aus der Sie ein Projekt erstellen möchten, und wählen Sie Neues Projekt erstellen aus.

Screenshot des Dialogfelds Datenbank importieren in Visual Studio.

Geben Sie im Dialog Neues Projekt erstellen einen Projektnamen an, der nicht mit einem Datenbanknamen übereinstimmen muss. Überprüfen und ändern Sie den Projektspeicherort nach Bedarf. Die Standardimporteinstellungen importieren die Objekte nach Schema in Ordner und dann Objekttyp. Sie können die Importeinstellungen ändern, um die Ordnerstruktur zu ändern oder Berechtigungen in die zu importierenden Objekte einzuschließen. Starten eines Imports.

Während der Importvorgang fortgesetzt wird, wird der Fortschritt als Meldungen im Dialogfeld Datenbank importieren angezeigt. Wenn der Import abgeschlossen ist, sind die importierten Objekte im Projektmappen-Explorer sichtbar, und die Protokolle werden in einer Datei im Projektverzeichnis unter Import Schema Logs gespeichert. Wählen Sie Fertig stellenaus.

Option 1 ist für die Befehlszeile nicht verfügbar. Verwenden Sie stattdessen Optionen 2.

Wählen Sie in der Anzeige des Datenbankobjekt-Explorers in VS Code oder Azure Data Studio eine Datenbank aus, aus der Sie ein Projekt erstellen möchten. Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie Projekt aus Datenbank erstellen aus.

Screenshot des Dialogs Projekt aus Datenbank erstellen in Azure Data Studio.

In Azure Data Studio muss im Dialog Projekt aus Datenbank erstellen der Projektname und der Speicherort ausgewählt werden. Die Standardimporteinstellungen importieren die Objekte nach Schema in Ordner und dann Objekttyp. Sie können eine andere Ordnerstruktur auswählen oder Berechtigungen in die zu importierenden Objekte einschließen, bevor Sie Erstellen auswählen.

In VS Code fordern die Eingabeaufforderungen einen Projektnamen und einen Speicherort an. Die Standardimporteinstellungen importieren die Objekte nach Schema in Ordner und dann Objekttyp. Sie können eine andere Ordnerstruktur auswählen oder Berechtigungen in die zu importierenden Objekte einschließen, bevor der Import beginnt.

Öffnen Sie die Anzeige Datenbankprojekte, um die neuen Projekt- und importierten Objektdefinitionen anzuzeigen.

Option 1 ist für die Befehlszeile nicht verfügbar. Verwenden Sie stattdessen Optionen 2.

Schritt 2: Erstellen des SQL-Projekts

Der Build-Prozess überprüft die Beziehungen zwischen Objekten und der Syntax für die in der Projektdatei angegebene Zielplattform. Die Artefaktausgabe aus dem Build-Prozess ist eine .dacpac-Datei, die verwendet werden kann, um das Projekt in einer Zieldatenbank bereitzustellen, und die das kompilierte Modell des Datenbankschemas enthält.

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projektknoten, und wählen Sie Build aus.

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn es Fehler oder Warnungen gibt, werden diese im Ausgabefenster angezeigt. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac-Datei) erstellt, dessen Speicherort in der Build-Ausgabe enthalten ist (Standard ist bin\Debug\projectname.dacpac).

Option 1 ist für die Befehlszeile nicht verfügbar. Verwenden Sie stattdessen Optionen 2.

Klicken Sie in der Ansicht Datenbankprojekte von VS Code oder Azure Data Studio mit der rechten Maustaste auf den Projektknoten, und wählen Sie Erstellen aus.

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn es Fehler oder Warnungen gibt, werden diese im Ausgabefenster angezeigt. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac-Datei) erstellt, dessen Speicherort in der Build-Ausgabe enthalten ist (Standard ist bin/Debug/projectname.dacpac).

Option 1 ist für die Befehlszeile nicht verfügbar. Verwenden Sie stattdessen Optionen 2.

Option 2: Erstellen eines neuen leeren SQL-Projekts und Importieren von Objekten aus einer vorhandenen Datenbank

Alternativ können die Schritte zum Erstellen und Importieren von Objekten separat ausgeführt werden.

Schritt 1: Erstellen eines neuen leeren SQL-Projekts

Wir beginnen unser Projekt, indem wir ein neues SQL-Datenbankprojekt erstellen, bevor wir unsere Objekte in das Projekt importieren.

Wählen Sie Datei, Neu und dann Projekt aus.

Verwenden Sie im Suchfeld des Dialogfelds Neues Projekt den Ausdruck SQL Server aus. Das oberste Ergebnis sollte SQL Server-Datenbankprojekt sein.

Screenshot: Dialog „Neues Projekt“.

Klicken Sie auf Speichern, um den Vorgang mit dem nächsten Schritt fortzusetzen. Geben Sie einen Projektnamen an, der nicht mit einem Datenbanknamen übereinstimmen muss. Überprüfen und ändern Sie den Projektspeicherort nach Bedarf.

Wählen Sie Create (Erstellen), um das Projekt zu erstellen. Das leere Projekt wird geöffnet und in der Ansicht Projektmappen-Explorer für die Bearbeitung angezeigt.

Wählen Sie Datei, Neu und dann Projekt aus.

Verwenden Sie im Suchfeld des Dialogfelds Neues Projekt den Ausdruck SQL Server aus. Das oberste Ergebnis sollte SQL Server-Datenbankprojekt, SDK-Stil (Vorschau) sein.

Screenshot: Dialog „Neues Projekt“.

Klicken Sie auf Speichern, um den Vorgang mit dem nächsten Schritt fortzusetzen. Geben Sie einen Projektnamen an, der nicht mit einem Datenbanknamen übereinstimmen muss. Überprüfen und ändern Sie den Projektspeicherort nach Bedarf.

Wählen Sie Create (Erstellen), um das Projekt zu erstellen. Das leere Projekt wird geöffnet und in der Ansicht Projektmappen-Explorer für die Bearbeitung angezeigt.

Wählen Sie in der Ansicht Datenbankprojekte von VS Code oder Azure Data Studio die Schaltfläche Neues Projekt aus.

Screenshot des neuen Viewlet.

Die erste Eingabeaufforderung bestimmt, welche Projektvorlage verwendet werden soll, hauptsächlich basierend darauf, ob die Zielplattform SQL Server oder Azure SQL ist. Wenn Sie aufgefordert werden, eine bestimmte Version von SQL auszuwählen, wählen Sie die Version aus, die der Zieldatenbank entspricht. Wenn aber die Zieldatenbankversion unbekannt ist, wählen Sie die neueste Version aus, da der Wert später geändert werden kann.

Geben Sie einen Projektnamen in die angezeigte Texteingabe ein, die nicht mit einem Datenbanknamen übereinstimmen muss.

Wählen Sie im angezeigten Dialog „Ordner auswählen“ ein Verzeichnis für den Ordner, die .sqlproj-Datei und andere Inhalte des Projekts aus.

Wenn Sie gefragt werden, ob Sie ein SDK-Formatprojekt (Vorschau) erstellen möchten, wählen Sie Ja aus.

Nachdem dies abgeschlossen ist, wird das leere Projekt geöffnet und in der Ansicht Datenbankprojekte für die Bearbeitung angezeigt.

Wenn die .NET-Vorlagen für Microsoft.Build.Sql-Projekte installiert sind, können Sie über die Befehlszeile ein neues SQL-Datenbankprojekt erstellen. Die -n-Option gibt den Namen des Projekts an, und die -tp-Option gibt die Projektzielplattform an.

Verwenden Sie die Option -h, um alle verfügbaren Optionen anzuzeigen.

# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject

Schritt 2: Importieren von Objekten aus einer vorhandenen Datenbank

Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten und wählen Sie Importieren –>-Datenbank... aus. Wenn diese Option deaktiviert ist, hat Ihr Datenbankprojekt möglicherweise Objekte darin erstellt. Sie können die Objekte löschen oder ein neues Projekt erstellen.

Wählen Sie im Dialog Datenbank importieren die Verbindung mit der Datenbank aus, aus der Sie Objekte importieren möchten. Wenn Sie eine Verbindung mit der Datenbank im SQL Server-Objekt-Explorer hergestellt haben, ist sie in der Verlaufsliste vorhanden.

Screenshot des Dialogfelds Datenbank importieren in Visual Studio.

Die Standardimporteinstellungen importieren die Objekte nach Schema in Ordner und dann Objekttyp. Sie können die Importeinstellungen ändern, um die Ordnerstruktur zu ändern oder Berechtigungen in die zu importierenden Objekte einzuschließen. Starten eines Imports.

Während der Importvorgang fortgesetzt wird, wird der Fortschritt als Meldungen im Dialogfeld Datenbank importieren angezeigt. Wenn der Import abgeschlossen ist, sind die importierten Objekte im Projektmappen-Explorer sichtbar, und die Protokolle werden in einer Datei im Projektverzeichnis unter Import Schema Logs gespeichert. Wählen Sie Fertig stellen aus, um zum Projekt zurückzukehren.

Wir verwenden die SqlPackage-CLI, um Objekte aus einer vorhandenen Datenbank in das neue SQL-Datenbankprojekt zu importieren, das wir in Visual Studio in Schritt 1 erstellt haben. Mit dem folgenden SqlPackage-Befehl wird das Schema einer Datenbank in einen MyDatabaseProject-Ordner importiert, die nach geschachtelten Schema- und Objekttypordnern organisiert sind.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Wenn diese Ordner in einem SQL-Datenbankprojektordner im SDK-Stil abgelegt werden, werden sie automatisch in das Projekt einbezogen, ohne dass sie importiert oder die SQL-Projektdatei geändert werden muss.

Hinweis

Die SQL Database Projects-Erweiterung in VS Code unterstützt nicht das Importieren von Objekten aus einer Datenbank in ein Projekt. Verwenden Sie die Erweiterung SQL Database Projects in Azure Data Studio, um Objekte aus einer Datenbank zu importieren, oder folgen Sie Option 1, um ein neues Projekt aus einer vorhandenen Datenbank in VS Code zu erstellen.

Öffnen Sie in der Erweiterung SQL-Datenbankprojekte in Azure Data Studio die Ansicht Datenbankprojekte. Klicken Sie mit der rechten Maustaste auf den Projektknoten und wählen Sie Projekt aus Datenbank aktualisieren.

Screenshot des Dialogs Datenbank aktualisieren in Azure Data Studio.

Wählen Sie im Dialog Datenbank aktualisieren die Verbindung mit der Datenbank aus, aus der Sie Objekte importieren möchten. Wenn Sie in der Anzeige Verbindung eine Verbindung mit der Datenbank hergestellt haben, ist sie in der Verlaufsliste vorhanden.

Wählen Sie entweder Änderungen im Vergleichsschema anzeigen aus, um eine Teilmenge der zu importierenden Objekte zu prüfen oder auszuwählen, oder Anwenden aller Änderungen, um alle Objekte zu importieren.

Die SqlPackage-CLI kann verwendet werden, um das Schema einer vorhandenen Datenbank in eine .dacpac-Datei oder einzelne .sql-Dateien zu extrahieren. Mit dem folgenden SqlPackage-Befehl wird das Schema einer Datenbank in .sql-Dateien extrahiert, die nach geschachtelten Schema- und Objekttypordnern organisiert sind.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Wenn diese Ordner in einem SQL-Datenbankprojektordner im SDK-Stil abgelegt werden, werden sie automatisch in das Projekt einbezogen, ohne dass sie importiert oder die SQL-Projektdatei geändert werden muss.

Schritt 3: Erstellen des SQL-Projekts

Der Build-Prozess überprüft die Beziehungen zwischen Objekten und der Syntax für die in der Projektdatei angegebene Zielplattform. Die Artefaktausgabe aus dem Build-Prozess ist eine .dacpac-Datei, die verwendet werden kann, um das Projekt in einer Zieldatenbank bereitzustellen, und die das kompilierte Modell des Datenbankschemas enthält.

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projektknoten, und wählen Sie Build aus.

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn es Fehler oder Warnungen gibt, werden diese im Ausgabefenster angezeigt. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac-Datei) erstellt, dessen Speicherort in der Build-Ausgabe enthalten ist (Standard ist bin\Debug\projectname.dacpac).

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projektknoten, und wählen Sie Build aus.

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn es Fehler oder Warnungen gibt, werden diese im Ausgabefenster angezeigt. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac-Datei) erstellt, dessen Speicherort in der Build-Ausgabe enthalten ist (Standard ist bin\Debug\projectname.dacpac).

Klicken Sie in der Ansicht Datenbankprojekte von VS Code oder Azure Data Studio mit der rechten Maustaste auf den Projektknoten, und wählen Sie Erstellen aus.

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn es Fehler oder Warnungen gibt, werden diese im Ausgabefenster angezeigt. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac-Datei) erstellt, dessen Speicherort in der Build-Ausgabe enthalten ist (Standard ist bin/Debug/projectname.dacpac).

SQL-Datenbankprojekte können über die Befehlszeile mithilfe des dotnet build-Befehls erstellt werden.

dotnet build

# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj

Die Build-Ausgabe enthält alle Fehler oder Warnungen sowie die spezifischen Dateien und Zeilennummern, in denen sie auftreten. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac-Datei) erstellt, dessen Speicherort in der Build-Ausgabe enthalten ist (Standard ist bin/Debug/projectname.dacpac).