Freigeben über


Übersicht Skript vor und nach der Bereitstellung

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

Skripts vor oder nach der Bereitstellung sind SQL-Skripts, die im Projekt enthalten sind und während der Bereitstellung ausgeführt werden sollen. Skripts vor oder nach der Bereitstellung sind in der .dacpac-Datei enthalten, aber sie werden nicht in das Datenbankobjektmodell kompiliert oder mit diesem überprüft. Ein Skript vor der Bereitstellung wird ausgeführt, bevor der Bereitstellungsplan ausgeführt wird, aber der Bereitstellungsplan wird berechnet, bevor das Skript ausgeführt wird. Ein Skript nach der Bereitstellung wird nach Abschluss des Bereitstellungsplans ausgeführt.

SQL-Projektdateibeispiel und Syntax

Eine SQL-Projektdatei kann über ein einzelnes Skript vor der Bereitstellung und ein einzelnes Skript nach der Bereitstellung verfügen.

Im folgenden Beispiel aus einer SQL-Projektdatei wird die prep-db.sql-Datei als Skript vor der Bereitstellung hinzugefügt.

...
  <ItemGroup>
    <PreDeploy Include="prep-db.sql" />
  </ItemGroup>

Im folgenden Beispiel aus einer SQL-Projektdatei wird die populate-app-settings.sql-Datei als Skript nach der Bereitstellung hinzugefügt.

...
  <ItemGroup>
    <PostDeploy Include="populate-app-settings.sql" />
  </ItemGroup>
</Project>

Mehrere Dateien können als Teil eines Skripts vor oder nach der Bereitstellung mithilfe eines SQLCMD-Skripts ausgeführt werden, das jede Datei in der angegebenen Reihenfolge aufruft.

:r .\scripts\script1.sql
:r .\scripts\script2.sql

Diese Dateien sollten vom Datenbankmodell-Build ausgeschlossen werden, indem Sie die Build Action-Eigenschaft in den Dateieigenschaften in Visual Studio auf None festlegen oder durch Hinzufügen eines Eintrags für die Datei in der .sqlproj-Datei, wobei das Build-Attribut auf None festgelegt ist.

...
  <ItemGroup>
    <Build Remove="scripts\script1.sql" />
    <Build Remove="scripts\script2.sql" />
  </ItemGroup>
</Project>

Hinzufügen von Skripten vor und nach der Bereitstellung

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Hinzufügen>Script aus. Wählen Sie Skript vor der Bereitstellung oder Skript nach der Bereitstellung aus.

Die Skriptdatei wird dem Projekt hinzugefügt und im Abfrage-Editor geöffnet, in dem Sie das Skript abschließen können. Dieses Skript wird vor oder nach der Ausführung des Bereitstellungsplans bei jeder Bereitstellung des Projekts ausgeführt.

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 erschein. Wählen Sie die Option Alle Vorlagen anzeigen aus. und dann Tabelle. Wählen Sie Skript vor der Bereitstellung oder Skript nach der Bereitstellung aus.

Die Skriptdatei wird dem Projekt hinzugefügt und im Abfrage-Editor geöffnet, in dem Sie das Skript abschließen können. Dieses Skript wird vor oder nach der Ausführung des Bereitstellungsplans bei jeder Bereitstellung des Projekts ausgeführt.

Klicken Sie in der Ansicht Datenbankprojekte von VS Code oder Azure Data Studio mit der rechten Maustaste auf das Projekt, und wählen Sie Skript vor der Bereitstellung hinzufügen oder Skript nach der Bereitstellung hinzufügen aus. Geben Sie einen Skriptnamen ohne die Dateierweiterung an.

Die Skriptdatei wird dem Projekt hinzugefügt und im Abfrage-Editor geöffnet, in dem Sie das Skript abschließen können. Dieses Skript wird vor oder nach der Ausführung des Bereitstellungsplans bei jeder Bereitstellung des Projekts ausgeführt.

Bearbeiten Sie die .sqlproj-Datei direkt, um Skripts nach oder vor der Bereitstellung hinzuzufügen. Fügen Sie ein <PreDeploy>- oder <PostDeploy>-Element dem Abschnitt <ItemGroup> der .sqlproj-Datei hinzu.

So fügen Sie z. B. das Skript scripts\before-script.sql zu unserem Projekt als Skript vor der Bereitstellung hinzu:

...
  <ItemGroup>
    <PreDeploy Include="scripts\before-script.sql" />
  </ItemGroup>

Dieses scripts\before-script.sql-Skript wird ausgeführt, bevor der Bereitstellungsplan ausgeführt wird, und zwar jedes Mal, wenn das Projekt bereitgestellt wird.