Erste Schritte mit SQL-Datenbankprojekten
Gilt für: SQL Server 2022 (16.x) Azure SQL-Datenbank Azure SQL Managed Instance
Ein SQL-Datenbankprojekt ist eine lokale Darstellung von SQL-Objekten, die das Schema einer einzelnen Datenbank umfassen, z. B. Tabellen, gespeicherte Prozeduren oder Funktionen. Der Entwicklungszyklus eines SQL-Datenbankprojekts ermöglicht es, die Datenbankentwicklung in die Workflows fortlaufende Integration und kontinuierliche Bereitstellung (CI/CD) zu integrieren, die als bewährte Methode für die Entwicklung vertraut sind.
In diesem Artikel wird das Erstellen eines neuen SQL-Projekts, das Hinzufügen von Objekten zum Projekt sowie das Erstellen und Bereitstellen des Projekts beschrieben. Mit Ausnahme der Visual Studio-Anweisungen (SQL Server Data Tools) konzentriert sich das Handbuch auf SQL-Projekte im SDK-Stil.
- Ein neues Projekt erstellen
- Hinzufügen von Objekten zum Projekt
- Erstellen des Projekts
- Bereitstellen des 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 die Bereitstellung eines SQL-Datenbankprojekts 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.
Schritt 1: Erstellen eines neuen Projekts
Wir beginnen mit unserem Projekt, indem wir ein neues SQL-Datenbankprojekt erstellen, bevor wir dem Projekt manuell Objekte hinzufügen. Es gibt weitere Möglichkeiten zum Erstellen eines Projekts, über die das Projekt sofort mit Objekten aus einer vorhandenen Datenbank auffüllt wird, z. B. mithilfe der Schemavergleichstools.
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.
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.
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.
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: Hinzufügen von Objekten zum Projekt
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, und wählen Sie Hinzufügen und dann Tabelle aus. Das Dialogfeld Neues Element hinzufügen wird angezeigt, in dem Sie den Tabellennamen angeben können. Wählen Sie Hinzufügen aus, um die Tabelle im SQL-Projekt zu erstellen.
Die Tabelle wird im Visual Studio-Tabellen-Designer mit der Vorlagentabellendefinition geöffnet, in der Sie Spalten, Indizes und andere Tabelleneigenschaften hinzufügen können. Speichern Sie die Datei, wenn Sie damit fertig sind, die anfänglichen Änderungen vorzunehmen.
Weitere Datenbankobjekte können über das Dialogfeld Neues Element hinzufügen hinzugefügt werden, z. B. Ansichten, gespeicherte Prozeduren und Funktionen. Greifen Sie auf den Dialog zu, indem Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten klicken und Hinzufügen und dann den gewünschten Objekttyp auswählen. Dateien im Projekt können über die Option Neuer Ordner unter Hinzufügen in Ordnern organisiert werden.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten, wählen Sie Hinzufügen und dann Neues Element aus. Das Dialogfeld Neues Element hinzufügen wird angezeigt. Wählen Sie Alle Vorlagen anzeigen und dann Tabelle aus. Geben Sie den Tabellennamen als Dateinamen an, und wählen Sie Hinzufügen aus, um die Tabelle im SQL-Projekt zu erstellen.
Die Tabelle wird im Visual Studio-Abfrage-Editor mit der Vorlagentabellendefinition geöffnet, in der Sie Spalten, Indizes und andere Tabelleneigenschaften hinzufügen können. Speichern Sie die Datei, wenn Sie damit fertig sind, die anfänglichen Änderungen vorzunehmen.
Weitere Datenbankobjekte können über das Dialogfeld Neues Element hinzufügen hinzugefügt werden, z. B. Ansichten, gespeicherte Prozeduren und Funktionen. Greifen Sie auf den Dialog zu, indem Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten klicken, Hinzufügen auswählen und dann den gewünschten Objekttyp nach Anzeige aller Vorlagen auswählen. Dateien im Projekt können über die Option Neuer Ordner unter Hinzufügen in Ordnern organisiert werden.
Klicken Sie in der Ansicht Datenbankprojekte von VS Code oder Azure Data Studio mit der rechten Maustaste auf den Projektknoten und wählen Sie Tabelle hinzufügen aus. Geben Sie im daraufhin angezeigten Dialogfeld den Tabellennamen an.
Die Tabelle wird im Text-Editor mit der Vorlagentabellendefinition geöffnet, in der Sie Spalten, Indizes und andere Tabelleneigenschaften hinzufügen können. Speichern Sie die Datei, wenn Sie damit fertig sind, die anfänglichen Änderungen vorzunehmen.
Weitere Datenbankobjekte können über das Kontextmenü auf dem Projektknoten hinzugefügt werden, z. B. Ansichten, gespeicherte Prozeduren und Funktionen. Greifen Sie auf das Dialogfeld zu, indem Sie mit der rechten Maustaste auf den Projektknoten in der Ansicht Datenbankprojekte von VS Code oder Azure Data Studio und dann auf den gewünschten Objekttyp klicken. Dateien im Projekt können über die Option Neuer Ordner unter Hinzufügen in Ordnern organisiert werden.
Dateien können dem Projekt hinzugefügt werden, indem sie im Projektverzeichnis oder in geschachtelten Ordnern erstellt werden. Die Dateierweiterung sollte .sql
sein sowie nach Objekttyp oder Schema und Objekttyp erstellt werden.
Die Basisvorlage für eine Tabelle kann als Ausgangspunkt zum Erstellen eines neuen Tabellenobjekts im Projekt verwendet werden:
CREATE TABLE [dbo].[Table1]
(
[Id] INT NOT NULL PRIMARY KEY
)
Schritt 3: Erstellen des 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
).
Schritt 4: Bereitstellen des Projektes
Das kompilierte Modell eines Datenbankschemas in einer .dacpac
-Datei kann mithilfe des SqlPackage
-Befehlszeilentools oder anderer Bereitstellungstools in einer Zieldatenbank bereitgestellt werden. Der Bereitstellungsprozess bestimmt die erforderlichen Schritte, um die Zieldatenbank so zu aktualisieren, dass sie dem in .dacpac
definierten Schema entspricht, wodurch je nach Bedarf Objekte erstellt oder geändert werden können, und zwar basierend auf den Objekten, die bereits in der Datenbank vorhanden sind. Daher ist der Bereitstellungsprozess idempotent, d. h. er kann mehrmals ausgeführt werden, ohne Probleme zu verursachen, und Sie können dasselbe .dacpac
in mehreren Datenbanken bereitstellen, ohne den Status vorher festzulegen.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste den Projektknoten, und wählen Sie Veröffentlichen… aus.
Das Dialogfeld „Veröffentlichen“ wird geöffnet, in dem Sie die Zieldatenbankverbindung einrichten. Wenn Sie über keine SQL-Instanz für die Bereitstellung verfügen, wird LocalDB ((localdb)\MSSQLLocalDB
) mit Visual Studio installiert und kann für Tests und Entwicklung verwendet werden.
Geben Sie einen Datenbanknamen an, und wählen Sie Veröffentlichen aus, um das Projekt in der Zieldatenbank bereitzustellen, oder Skript generieren , um ein Skript zu generieren, das vor der Ausführung überprüft werden soll.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste den Projektknoten, und wählen Sie Veröffentlichen… aus.
Das Dialogfeld „Veröffentlichen“ wird geöffnet, in dem Sie die Zieldatenbankverbindung einrichten. Wenn Sie über keine SQL-Instanz für die Bereitstellung verfügen, wird LocalDB ((localdb)\MSSQLLocalDB
) mit Visual Studio installiert und kann für Tests und Entwicklung verwendet werden.
Geben Sie einen Datenbanknamen an, und wählen Sie Veröffentlichen aus, um das Projekt in der Zieldatenbank bereitzustellen, oder Skript generieren , um ein Skript zu generieren, das vor der Ausführung überprüft werden soll.
Klicken Sie in der Ansicht Datenbankprojekte von VS Code oder Azure Data Studio mit der rechten Maustaste auf den Projektknoten, und wählen Sie Veröffentlichen aus.
Tipp
Wenn Sie über keine SQL-Instanz für die Bereitstellung verfügen, kann die Erweiterung SQL Database Projects eine lokale SQL Server-Instanz für Sie in einem neuen Container erstellen. Wählen Sie bei einer Container-Runtime wie Docker Desktop ausgeführt wird, wählen Sie in der Dropdownliste die Option Veröffentlichen in einem neuen lokalen SQL-Server-Entwicklungscontainer aus.
Wenn Sie über eine vorhandene SQL-Instanz für die Bereitstellung verfügen, wählen Sie Auf einem vorhandenen SQL-Server veröffentlichen und dann kein Profil verwenden aus, wenn Sie zur Eingabe eines Veröffentlichungsprofils aufgefordert werden.
Wenn Sie keine Verbindung mit einer Zieldatenbank konfiguriert haben, werden Sie aufgefordert, eine neue Verbindung zu erstellen. Die neuen Verbindungseingaben fordern den Servernamen, die Authentifizierungsmethode und den Datenbanknamen an.
Nach der Konfiguration der Verbindung beginnt der Bereitstellungsprozess. Sie können wählen, ob Sie die Bereitstellung automatisch ausführen (veröffentlichen) oder ein Skript erstellen, das Sie vor der Ausführung überprüfen können (Skript erstellen).
Die SQLPackage-CLI wird verwendet, um eine .dacpac
-Datei mit dem Veröffentlichungsvorgang in einer Zieldatenbank bereitzustellen.
So stellen Sie z. B. eine .dacpac
-Datei basierend auf einem Verbindungszeichenfolge in einer Zieldatenbank bereit:
sqlpackage /Action:Publish /SourceFile:bin/Debug/projectname.dacpac /TargetConnectionString:{yourconnectionstring}