Freigeben über


Lernprogramm: Starten ausgehend von einer bestehenden Datenbank

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceSQL-Datenbank in Microsoft Fabric

SQL-Projekte enthalten deklarative (CREATE Anweisungsdateien) für alle Objekte in einer Datenbank, z. B. Tabellen, Ansichten und gespeicherte Prozeduren. Sie können diese Dateien verwenden, um neue Datenbanken zu erstellen, vorhandene Datenbanken zu aktualisieren oder die Datenbank in der Quellcodeverwaltung nachzuverfolgen. Häufig beginnen Sie mit einem SQL-Projekt, wenn Sie über eine vorhandene Datenbank verfügen und Objekte im SQL-Projekt erstellen möchten, die der Datenbank mit minimalem Aufwand entsprechen.

Einige SQL-Projekttools 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 dieses 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

Prerequisites

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

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

Note

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 auf Windows oder in container 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 eine project erstellen möchten, und wählen Sie Neue Project erstellen... .

Screenshot des Dialogfelds

Geben Sie im Dialogfeld Neues Projekt einen Projektnamen ein. Der Projektname muss nicht mit einem Datenbanknamen übereinstimmen. Überprüfen Sie den Projektspeicherort und ändern Sie ihn bei 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.

Im Dialogfeld "Datenbank importieren " wird der Importstatus als Meldungen angezeigt. Nach Abschluss des Imports werden die importierten Objekte im Projektmappen-Explorer angezeigt. Der Prozess speichert die Protokolle in einer Datei im Projektverzeichnis unter Import Schema Logs. Wählen Sie "Fertig stellen" aus.

Option 1 ist für SQL-Projekte im SDK-Stil in Visual Studio nicht verfügbar. Verwenden Sie stattdessen Optionen 2.

Wählen Sie in der Ansicht des Datenbankobjekt-Explorers in Visual Studio Code eine Datenbank aus, aus der Sie ein Projekt erstellen möchten. Klicken Sie mit der rechten Maustaste auf die Datenbank, und wählen Sie Create Project from Database aus.

Screenshot des Dialogfelds „Projekt aus Datenbank erstellen“ in Visual Studio Code.

In Visual Studio Code erfordert das Dialogfeld Projekt aus der Datenbank erstellen den Projektnamen und den Speicherort. 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.

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

Option 1 ist für SQL Server Management Studio nicht verfügbar. Verwenden Sie stattdessen Optionen 2.

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 Buildprozess ist eine .dacpac Datei, mit der Sie das Projekt in einer Zieldatenbank bereitstellen können. Diese Datei enthält das kompilierte Modell des Datenbankschemas.

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

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn Fehler oder Warnungen vorhanden sind, zeigt das Ausgabefenster diese an. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac Datei) erstellt, und sein Speicherort ist in der Buildausgabe enthalten (Standard ist bin\Debug\projectname.dacpac).

Option 1 ist für SQL-Projekte im SDK-Stil in Visual Studio nicht verfügbar. Verwenden Sie stattdessen Optionen 2.

Klicken Sie in der Ansicht Datenbankprojekte der Visual Studio Code mit der rechten Maustaste auf den Projektknoten, und wählen Sie Build aus.

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn Fehler oder Warnungen vorhanden sind, zeigt das Ausgabefenster diese an. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac Datei) erstellt, und sein Speicherort ist in der Buildausgabe enthalten (Standard ist bin/Debug/projectname.dacpac).

Option 1 ist für SQL Server Management Studio nicht verfügbar. Verwenden Sie stattdessen Optionen 2.

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 Sie die Schritte zum Erstellen und Importieren von Objekten trennen.

Schritt 1: Erstellen eines neuen leeren SQL-Projekts

Starten Sie Ihr Projekt, indem Sie ein neues SQL-Datenbankprojekt erstellen, bevor Sie Ihre Objekte in das Projekt importieren.

Wählen Sie File, New aus, und Project.

Verwenden Sie im Dialogfeld Neue Project den Begriff SQL Server im Suchfeld. Das oberste Ergebnis ist SQL Server Database Project.

Screenshot: Dialog „Neues Projekt“.

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

Wählen Sie Create (Erstellen), um das Projekt zu erstellen. Das leere Projekt wird geöffnet und ist im Projektmappen-Explorer zum Bearbeiten sichtbar.

Wählen Sie File, New aus, und Project.

Verwenden Sie im Dialogfeld Neue Project den Begriff SQL Server im Suchfeld. Das oberste Ergebnis ist SQL Server Database Project, SDK-Format (Vorschau).

Screenshot: Dialog „Neues Projekt“.

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

Wählen Sie Create (Erstellen), um das Projekt zu erstellen. Das leere Projekt wird geöffnet und ist im Projektmappen-Explorer zum Bearbeiten sichtbar.

Wählen Sie in der Ansicht Datenbankprojekte der Visual Studio Code die Schaltfläche Neue Project 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 Sie die Zieldatenbankversion nicht kennen, 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 daraufhin angezeigten Dialogfeld "Ordner auswählen " ein Verzeichnis für den Ordner, .sqlproj die Datei und andere Inhalte des Projekts aus.

Wenn Sie aufgefordert werden, ein SDK-Projekt zu erstellen, wählen Sie Jaaus.

Nach Abschluss des Vorgangs wird das leere Projekt geöffnet und zur Bearbeitung in der Ansicht "Datenbankprojekte " angezeigt.

Wählen Sie File, New aus, und Project.

Wählen Sie im Dialogfeld Neues ProjektSQL-Datenbankprojekt aus.

Screenshot: Dialog „Neues Projekt“.

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

Wählen Sie Create (Erstellen), um das Projekt zu erstellen. Das leere Projekt wird geöffnet und ist im Projektmappen-Explorer zum Bearbeiten sichtbar.

Wenn Sie die .NET-Vorlagen für Microsoft.Build.Sql-Projekte installieren, 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.

# create a new SQL database project
dotnet new sqlproj -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 Import -> 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 in SQL Server Objekt-Explorer hergestellt haben, wird sie in der Liste history angezeigt.

Screenshot des Dialogfelds

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. Nach Abschluss des Imports 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.

Verwenden Sie die SQLPackage CLI, um Objekte aus einer vorhandenen Datenbank in das neue SQL-Datenbankprojekt zu importieren, das Sie 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 Sie diese Ordner in einem SQL-Datenbankprojektordner im SDK-Stil platzieren, werden sie automatisch in das Projekt eingeschlossen, ohne sie zu importieren oder die SQL-Projektdatei zu ändern.

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

Screenshot des Dialogfelds

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

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.

Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Import aus Datenbank aus... .

Wählen Sie im Dialog Datenbank importieren die Verbindung mit der Datenbank aus, aus der Sie Objekte importieren möchten.

Screenshot des Dialogfelds

Die Standardimporteinstellungen importieren alle Objekte aus der Datenbank in das Projekt und ordnen sie in Ordnern nach Schema und Objekttyp an, brechen den Import jedoch ab, wenn Objekte im Projekt überschrieben werden. Sie können den Import ändern, um das Projekt mit Objekten aus der Datenbank zu aktualisieren, indem Sie vorhandene Objekte im Projekt überschreiben. Wählen Sie "Importieren" aus, um den Import zu starten.

Nach Abschluss des Imports wird Projektmappen-Explorer mit den importierten Objekten aktualisiert.

Verwenden Sie die SqlPackage CLI, 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 Sie diese Ordner in einem SQL-Datenbankprojektordner im SDK-Stil platzieren, werden sie automatisch in das Projekt eingeschlossen, ohne sie zu importieren oder die SQL-Projektdatei zu ändern.

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 Buildprozess ist eine .dacpac Datei, mit der Sie das Projekt in einer Zieldatenbank bereitstellen können. Diese Datei enthält das kompilierte Modell des Datenbankschemas.

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

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn Fehler oder Warnungen vorhanden sind, zeigt das Ausgabefenster diese an. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac Datei) erstellt, und sein Speicherort ist in der Buildausgabe enthalten (Standard ist bin\Debug\projectname.dacpac).

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

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn Fehler oder Warnungen vorhanden sind, zeigt das Ausgabefenster diese an. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac Datei) erstellt, und sein Speicherort ist in der Buildausgabe enthalten (Standard ist bin\Debug\projectname.dacpac).

Klicken Sie in der Ansicht Datenbankprojekte der Visual Studio Code mit der rechten Maustaste auf den Projektknoten, und wählen Sie Build aus.

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn Fehler oder Warnungen vorhanden sind, zeigt das Ausgabefenster diese an. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac Datei) erstellt, und sein Speicherort ist in der Buildausgabe enthalten (Standard ist bin/Debug/projectname.dacpac).

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

Screenshot von Projektmappen-Explorer in SQL Server Management Studio mit der Option

Das Ausgabefenster wird automatisch geöffnet, um den Build-Prozess anzuzeigen. Wenn Fehler oder Warnungen vorhanden sind, zeigt das Ausgabefenster diese an. Bei einem erfolgreichen Build wird das Buildartefakt (.dacpac Datei) erstellt, und sein Speicherort ist in der Buildausgabe enthalten (Standard ist bin\Debug\projectname.dacpac).

Sie können SQL-Datenbankprojekte über die Befehlszeile mit dem dotnet build Befehl erstellen.

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, und sein Speicherort ist in der Buildausgabe enthalten (Standard ist bin/Debug/projectname.dacpac).