Freigeben über


Database DevOps (Vorschau) in SQL Server Management Studio

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 hilft Ihnen, die Datenbankentwicklung in fortlaufende Integrations- und fortlaufende Bereitstellungsworkflows (CI/CD) zu integrieren, die als bewährte Methoden für die Entwicklung vertraut sind. In SSMS können Sie Projekte in der Vorschau verwenden, um Datenbankänderungen zu implementieren, zu verwalten und daran gemeinsam zu arbeiten, indem eine lokale Definition der Datenbankobjekte bereitgestellt wird Microsoft.Build.Sql.

In diesem Artikel wird beschrieben, wie Sie SQL-Datenbankprojekte in SQL Server Management Studio (SSMS) als Teil oder zum Verankern von DevOps-Datenbankworkflows verwenden. Weitere Informationen zu SQL-Datenbankprojekten finden Sie unter SQL-Datenbankprojekte.

Voraussetzungen

Neues Projekt erstellen

Um mit SQL-Datenbankprojekten in SSMS zu arbeiten, benötigen Sie einen lokalen Ordner, der Ihre Projektdateien enthält. Sie können ein Projekt starten, indem Sie Objekte aus einer vorhandenen Datenbank extrahieren oder neue Objektdateien von Grund auf neu erstellen.

Screenshot des Dialogfelds

Hinweis

SSMS fordert Sie möglicherweise auf, beim Öffnen einer Datei im Projektmappen-Explorer eine Verbindung mit einem Server herzustellen. Sie können die SQL-Datenbankprojektentwicklung offline ausführen, ohne eine Verbindung mit einer Datenbank herzustellen.

Hinzufügen von Objekten aus einer vorhandenen Datenbank

Verwenden Sie SqlPackage, um das Schema aus einer vorhandenen Datenbank in einzelne .sql Dateien zu extrahieren, die nach Objekttyp organisiert sind. Führen Sie den folgenden Befehl aus, um eine Ordnerstruktur mit Ihren Datenbankobjekten zu erstellen:

sqlpackage /Action:Extract /SourceConnectionString:"<connection-string>" /TargetFile:"<temp-folder>" /p:ExtractTarget=SchemaObjectType

Der /p:ExtractTarget=SchemaObjectType-Parameter organisiert die extrahierten Dateien anhand des Schemas und Objekttyps in Unterordner (z. B. dbo/Tables, dbo/StoredProcedures). Extrahieren Sie es in einen temporären Ordner außerhalb Ihres Projektverzeichnisses, und kopieren Sie dann den gewünschten Inhalt mithilfe von Windows Explorer in Ihren Projektordner.

Weitere Informationen zu SqlPackage-Extraktoptionen finden Sie im SqlPackage-Extrakt.

Erstellen neuer Objekte

Fügen Sie Ihrem Projekt neue Datenbankobjekte hinzu, indem Sie Dateien im Projektordner erstellen .sql . Jede Datei sollte eine einzelne CREATE Anweisung für ein Datenbankobjekt enthalten. Beispiel: Eine Tabellendefinition:

CREATE TABLE [dbo].[Products]
(
    [ProductId] INT NOT NULL PRIMARY KEY,
    [ProductName] NVARCHAR (100) NOT NULL,
    [Price] DECIMAL (10, 2) NOT NULL
);

Organisieren Sie Dateien nach Schema und Objekttyp mithilfe von Unterordnern, wie z. B. dbo/Tables oder Sales/StoredProcedures. Diese Struktur entspricht der Ausgabe des SqlPackage-Extrakts und erleichtert das Auffinden von Objekten, wenn Ihr Projekt wächst. Der SQL-Projektbuildprozess enthält standardmäßig alle .sql Dateien im Projektordner und deren Unterordner.

SSMS stellt Vorlagen für allgemeine Elemente bereit, die Ihnen bei den ersten Schritten helfen. Wenn Sie ein neues Element hinzufügen möchten, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, wählen Sie"Neues Element>" aus, und wählen Sie aus der Liste der SQL-Objektvorlagen aus.

Vorhandene Projekte öffnen

Wenn Sie ein vorhandenes SQL-Datenbankprojekt in SSMS öffnen möchten, wählen Sie "Datei>Öffnen>Projekt/Projektmappe" aus, und navigieren Sie zur .sqlproj-Datei.

Von Bedeutung

SSMS unterstützt nur PROJEKTE im SDK-Stil Microsoft.Build.Sql . Die mindestens unterstützte SDK-Version ist 2.1.0. Wenn Sie ein ursprüngliches SQL-Projekt in Visual Studio erstellt haben, müssen Sie es vor dem Öffnen in das SDK-Format konvertieren.

Anleitungen zum Konvertieren ursprünglicher SQL-Projekte in das SDK-Format finden Sie unter Konvertieren eines ursprünglichen SQL-Projekts in ein SDK-Formatprojekt.

Erstellen von Projekten und Bereitstellen von Änderungen

Der SQL-Projektworkflow besteht aus zwei Hauptschritten: Erstellen des Projekts zum Überprüfen und Kompilieren des Schemas und Bereitstellen der kompilierten Ausgabe in einer Zieldatenbank.

Projekt-Erstellung

Beim Erstellen eines SQL-Projekts werden die Beziehungen zwischen Objekten überprüft und die T-SQL-Syntax auf der angegebenen Zielplattform überprüft. Der Buildprozess erzeugt eine .dacpac Datei, die ein kompiliertes Modell des Datenbankschemas enthält.

Um ein Projekt in SSMS zu erstellen, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie "Erstellen" aus.

Screenshot des Projektmappen-Explorers mit der SQL-Projekt-Build-Option.

Die Buildausgabe zeigt eventuelle Fehler oder Warnungen an. Fehler deuten auf Probleme hin, die die Bereitstellung verhindern, z. B. eine Ansicht, die auf eine Tabelle verweist, die nicht vorhanden ist. Warnungen heben potenzielle Probleme wie inkonsistente Schreibweise in Objektbezeichnungen hervor.

Bei einem erfolgreichen Build wird die .dacpac Datei im bin\Debug Ordner in Ihrem Projektverzeichnis erstellt.

Weitere Informationen zur Problembehandlung bei Buildproblemen finden Sie unter Problembehandlung bei SQL-Projektbuildfehlern.

Bereitstellen von Änderungen

Stellen Sie nach dem Erstellen des Projekts die .dacpac Zieldatenbank mithilfe des Dialogfelds "Veröffentlichen" in SSMS bereit. Der Deployment-Prozess vergleicht die .dacpac mit der Zieldatenbank und generiert die erforderlichen CREATE, ALTER und DROP Anweisungen, um die Datenbank mit Ihrem Projekt zu synchronisieren.

Klicken Sie zum Bereitstellen im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie "Veröffentlichen" aus. Konfigurieren Sie im Dialogfeld "Veröffentlichen" Die Zieldatenbankverbindung, und wählen Sie "Veröffentlichen " aus, um Änderungen anzuwenden oder Skript generieren, um das Bereitstellungsskript vor der Ausführung zu überprüfen.

Screenshot des Dialogfelds

Der Veröffentlichungsprozess ist idempotent, sodass Sie dasselbe .dacpac mehrmals bereitstellen können, ohne dass Probleme entstehen. Mit diesem Ansatz können Sie mehrere Umgebungen (Entwicklung, Staging, Produktion) mithilfe desselben kompilierten Artefakts bereitstellen.

Ausführliche Informationen zu Bereitstellungsoptionen und -konfiguration finden Sie unter "Erste Schritte mit SQL-Datenbankprojekten".