Freigeben über


Gewusst wie: Bereitstellen von Änderungen in neuen oder vorhandenen Datenbanken

Nachdem Sie Änderungen am Datenbankprojekt vorgenommen haben, müssen Sie diese Änderungen auf dem Datenbankserver bereitstellen. Wenn Sie das Datenbankprojekt bereitstellen, wird das im Datenbankprojekt definierte Schema mit dem Zielschema verglichen, um den Satz der Aktionen zu ermitteln, die für die Synchronisierung der Schemas erforderlich sind. Diese Aktionen werden mit dem Skript vor der Bereitstellung und dem Skript nach der Bereitstellung kombiniert, um ein vollständiges Bereitstellungsskript zu bilden. Wenn die Zieldatenbank nicht vorhanden ist oder Sie die Datenbank immer neu erstellen, wird zum Erstellen der Datenbank das in der DBSCHEMA-Datei definierte Schema verwendet. Beim Erstellen einer neuen Datenbank versucht das Bereitstellungsskript, eine vorhandene Datenbank mit demselben Namen abzulegen, sofern eine solche vorhanden ist. Wenn das Datenbankprojekt, dessen Eigenschaften oder dessen Inhalt seit der letzten Erstellung oder Bereitstellung geändert wurden, generieren Sie beim Erstellen des Projekts eine aktuelle DBSCHEMA-Datei.

In einer Produktionsumgebung wird die Bereitstellung vermutlich nicht direkt in die Zieldatenbank erfolgen. Generieren Sie stattdessen das Bereitstellungsskript (eine SQL-Datei), überprüfen und aktualisieren Sie es ggf., und stellen Sie es dann mit dem Transact-SQL-Editor bereit. Alternativ können Sie auch ein Tool wie SQL Server Management Studio verwenden.

Oder Sie stellen die Datenbank mit dem Tool VSDBCMD.EXE bereit. Sie können die DBSCHEMA-Datei angeben, mit der Sie die Datenbank bereitstellen möchten. Mit VSDBCMD ist auch eine Bereitstellung von einem Computer möglich, auf dem Visual Studio nicht installiert ist. Weitere Informationen finden Sie unter Gewusst wie: Vorbereiten einer Datenbank für die Bereitstellung über eine Eingabeaufforderung mithilfe von VSDBCMD.EXE.

Wichtig

Bevor Sie das Datenbankprojekt bereitstellen, müssen Sie die Projekteigenschaften festlegen, um die Zieldatenbankverbindung und den Datenbanknamen anzugeben. Wenn Sie das Datenbankprojekt mit dem Assistenten für neue Datenbankprojekte generiert haben, haben Sie die Projekteigenschaften möglicherweise bereits angegeben. Sie können die Projekteigenschaften jederzeit ändern. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren der Datenbankeigenschaften für Datenbankprojekte.

Erforderliche Berechtigungen

Sie müssen über die erforderlichen Berechtigungen zum Erstellen der Datenbank (für neue Bereitstellungen) und zum Erstellen, Ändern und Löschen der Schemaobjekte in dieser Datenbank verfügen, um das Datenbankprojekt bereitzustellen.

Bereitstellen als einzelne Datenbank

Sie können die Datenbank bereitstellen, indem Sie Visual Studio an einer Eingabeaufforderung verwenden oder aber das Bereitstellungsskript in einem Transact-SQL-Editor ausführen. Sie können den in Visual Studio bereitgestellten Transact-SQL-Editor oder bestimmte Tools verwenden, z. B. SQL Server Management Studio.

So stellen Sie das Datenbankprojekt in einer neuen oder vorhandenen Datenbank bereit

  1. Klicken Sie im Projektmappen-Explorer auf das Datenbankprojekt, das Sie bereitstellen möchten.

    Wenn Sie eine benutzerdefinierte Konfiguration erstellt haben, können Sie angeben, dass diese verwendet werden soll, indem Sie auf der Symbolleiste Standard auf den entsprechenden Namen in der Liste Projektmappenkonfigurationen klicken. Standardmäßig weist das Datenbankprojekt eine einzelne Konfiguration auf, die bereits ausgewählt ist.

  2. Klicken Sie im Menü Erstellen auf Bereitstellen.

    Die Buildausgabe für das Datenbankprojekt wird generiert (sofern noch nicht vorhanden oder auf dem neuesten Stand) und anschließend bereitgestellt. Im Ausgabefenster werden die Ergebnisse der Bereitstellung wie folgt angezeigt:

    Projektname -> D:\Dokumente und Einstellungen\Benutzername\Eigene Dateien\Visual Studio 2008\Projects\Projektmappenname\Projektname\sql\Projektname.dbschema

    ------ Bereitstellung gestartet: Projekt: Projektname, Konfiguration: Debug Any CPU ------

    Bereitstellungsskript Projektname.sql wurde generiert

    Projektname wird erstellt

    dbo.Objektname wird erstellt

    .

    .

    .

    .

    ========== Build: 1 erfolgreich oder aktuell, Fehler bei 0, 0 übersprungen ==========

    ========== Bereitstellung: 1 erfolgreich, Fehler bei 0, 0 übersprungen==========

So stellen Sie das Datenbankprojekt in einer neuen oder vorhandenen Datenbank über die Befehlszeile bereit

  1. Öffnen Sie eine Eingabeaufforderung, und wechseln Sie zum Projektverzeichnis.

  2. Geben Sie an der Eingabeaufforderung die folgende Beispielbefehlszeile ein, um das Datenbankprojekt bereitzustellen (wobei Datenbankprojekt der Name des Projekts ist):

    MSBuild /t:Build;Deploy DatabaseProject.dbproj

    Tipp

    MSBuild.exe muss sich in dem Pfad befinden, den die PATH-Umgebungsvariable angibt. Außerdem müssen Sie TargetDatabase und TargetConnectionString entweder im Datenbankprojekt oder als Teil der Befehlszeile angeben. Weitere Informationen über die Befehlszeilensyntax zum Generieren von Buildskripts finden Sie unter Übersicht über das Erstellen und Bereitstellen einer Datenbank.

    Es werden Ergebnisse wie die folgenden angezeigt:

    Microsoft (R) Build Engine Version 3.5.21022.8

    [Microsoft .NET Framework, Version 2.0.50727.1433]

    Copyright (C) Microsoft Corporation 2007. All rights reserved.

    Build started 5/20/2008 1:36:58 PM.

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" on node 0 (Deploy target(s)).

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" (1) is building "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.deploymanifest" (2) on node 0 (DspDeploy target(s)).

    Deployment script ProjectName.sql generated

    :

    (1 row(s) affected)

    Done Building Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.deploymanifest" (DspDeploy

    target(s)).

    Done Building Project "Projektlaufwerk:\Documents and Settings\Benutzername\My Documents\Visual Studio 2008\Projects\Projektmappenname\Projektname\Projektname.dbproj" (Deploy target(s)).

    Build succeeded.

    0 Warning(s)

    0 Error(s)

    Time Elapsed 00:00:07.32

So stellen Sie die Datenbank durch Ausführen des Bereitstellungsskripts bereit

  1. Öffnen Sie das Bereitstellungsskript im Transact-SQL-Editor Ihrer Wahl.

    Tipp

    Bei diesem Verfahren wird davon ausgegangen, dass Sie Transact-SQL verwenden (im Lieferumfang von Visual Studio enthalten).

    Das kompilierte Bereitstellungsskript wird Projektname.sql benannt und befindet sich im Ordner Projektmappenname\Projektname\sql\Konfiguration. Konfiguration stellt den Namen der Buildkonfiguration dar, z. B. Debug oder Release.

  2. Wählen Sie auf der Menüleiste Daten, Transact-SQL-Editor, SQLCMD-Modus, wenn dieser noch nicht aktiviert wurde.

    Wichtig

    Wenn SQLCMD-Modus nicht aktiviert ist, treten beim Ausführen des Bereitstellungsskripts Fehler auf, da die :setvar-Anweisungen nicht unterstützt werden.

  3. Wählen Sie auf der Menüleiste Daten, Transact-SQL-Editor, SQL ausführen, um das Bereitstellungsskript ausführen. Wenn Sie dazu aufgefordert werden, geben Sie die Verbindungsinformationen für den Server an, auf dem Sie die Bereitstellung vornehmen möchten.

    Das Bereitstellungsskript wird ausgeführt, und die Datenbank wird erstellt.

Bereitstellen in mehreren Datenbanken oder auf mehreren Servern

Sie können das Schema in mehreren Datenbanken oder auf mehreren Servern bereitstellen. Wenn die Bereitstellung auf einer kleinen Anzahl von Servern oder in einer kleinen Anzahl von Datenbanken erfolgt, die sich nicht ändern (wenn Sie z. B. das Schema auf dem persönlichen Entwicklungsserver und auf einem Stagingserver bereitstellen möchten), können Sie mehrere Buildkonfigurationen erstellen. Jede Buildkonfiguration kann einen anderen Zielserver oder eine andere Zieldatenbank enthalten. Wenn die Bereitstellung auf einer größeren Anzahl von Servern erfolgen muss oder wenn die Namen des Zielservers oder der Zieldatenbank regelmäßig geändert werden, sollten Sie eine andere Vorgehensweise verwenden. Diese Vorgehensweisen werden im Folgenden beschrieben.

So erstellen Sie mehrere Buildkonfigurationen für die Bereitstellung auf mehreren Servern oder in mehreren Datenbanken

  1. Öffnen Sie das Datenbankprojekt in Visual Studio.

  2. Klicken Sie im Menü Erstellen auf die Option Konfigurations-Manager.

    Das Dialogfeld Konfigurations-Manager wird geöffnet.

  3. Klicken Sie in Konfiguration der aktuellen Projektmappe auf <Neu>.

    Das Dialogfeld Neue Projektmappenkonfiguration wird angezeigt.

  4. Geben Sie im Feld Name einen Namen für die erste Serverkonfiguration ein.

  5. Wenn in der Standardkonfiguration bereits Projekteigenschaften konfiguriert waren, klicken Sie in der Liste Einstellungen kopieren von auf Standard.

  6. Klicken Sie auf OK.

  7. Klicken Sie im Listenfeld Konfiguration der aktuellen Projektmappe auf <Neu>.

    Das Dialogfeld Neue Projektmappenkonfiguration wird angezeigt.

  8. Geben Sie im Feld Name einen Namen für die zweite Serverkonfiguration ein.

  9. Wenn in der Standardkonfiguration bereits Projekteigenschaften konfiguriert waren, klicken Sie in der Liste Einstellungen kopieren von auf Standard.

    Tipp

    Sie können auch den Datenbanknamen und die Verbindungszeichenfolge für die einzelnen benannten Konfigurationen konfigurieren.

  10. Klicken Sie auf Schließen.

  11. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Datenbankprojekt, und klicken Sie auf Eigenschaften.

  12. Klicken Sie auf die Registerkarte Erstellen.

  13. Klicken Sie in Konfiguration auf den Namen der ersten Serverkonfiguration.

  14. Ändern Sie die Zielverbindung und den Datenbanknamen, sodass sie mit der ersten Serverkonfiguration übereinstimmen.

  15. Klicken Sie in Konfiguration auf den Namen der zweiten Serverkonfiguration.

  16. Ändern Sie die Zielverbindung und den Datenbanknamen, sodass sie mit der zweiten Serverkonfiguration übereinstimmen.

  17. Klicken Sie im Menü Datei auf Ausgewählte Elemente speichern, um die Konfigurationseinstellungen zu speichern.

    Jetzt können Sie auf der Symbolleiste Standard eine Konfiguration angeben und anschließend diese Konfiguration erstellen oder bereitstellen.

So stellen Sie Datenbanken mit MSBuild über die Befehlszeile bereit

  • Stellen Sie in einem Eingabeaufforderungsfenster das Buildskript bereit, indem Sie die folgende Befehlszeile eingeben (und den Servernamen sowie die Zielkonfiguration durch die entsprechenden Werte ersetzen).

    MSBuild /t:Deploy /p:Configuration=Zielkonfiguration Datenbankprojektname.dbproj

    Tipp

    Für die Bereitstellung auf mehreren Servern müssen Sie die Zielverbindungszeichenfolgen-Eigenschaft überschreiben, indem Sie in einem Befehlszeilenfenster Folgendes eingeben: /p:TargetConnectionString="Data Source=Servername;Integrated Security=True;Pooling=False". Sie können eine Konfiguration für jeden Zielserver definieren und anschließend die bereitzustellende Konfiguration angeben.

So stellen Sie ein Datenbankprojekt mit VSDBCMD an einer Eingabeaufforderung bereit

  • Wichtig

    In dieser Vorgehensweise wird davon ausgegangen, dass Sie bereits die notwendigen Dateien auf den Computer kopiert haben, auf dem Sie VSDBCMD ausführen möchten. Weitere Informationen finden Sie unter Gewusst wie: Vorbereiten einer Datenbank für die Bereitstellung über eine Eingabeaufforderung mithilfe von VSDBCMD.EXE.

    Öffnen Sie ein Eingabeaufforderungsfenster, und geben Sie die folgende Befehlszeile ein:

     VSDBCMD /a:Deploy /dd:+ /manifest:manifestFileName.dbmanifest
    

    Das Bereitstellungsmanifest stellt die übrigen Einstellungen (z. B. Zieldatenbankname, Verbindungszeichenfolge usw.) bereit. Diese können auch in der Befehlszeile angegeben werden.

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Datenbankprojekts zum Generieren einer kompilierten Schemadatei (.dbschema)

Exemplarische Vorgehensweise: Bereitstellen von Änderungen an einer vorhandenen der Versionskontrolle unterliegenden Datenbank

Konzepte

Übersicht über das Erstellen und Bereitstellen einer Datenbank

Übersicht über Datenbankprojekteinstellungen

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Juni 2010

Gemäß Kundenfeedback Einführung bereinigt und weitere Informationen zum Bereitstellen mit VSDBCMD hinzugefügt.

Kundenfeedback.

Mai 2011

Prozedur hinzugefügt, die erklärt, wie Sie ein Bereitstellungsskript im Transact-SQL-Editor ausführen.

Kundenfeedback.