Share via


Overzicht van scripts vóór implementatie en na implementatie

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Pre-implementatie- en post-implementatiescripts zijn SQL-scripts die zijn opgenomen in het project dat tijdens de implementatie moet worden uitgevoerd. Scripts vóór/na de implementatie zijn opgenomen in de .dacpac scripts, maar worden niet gecompileerd of gevalideerd met het databaseobjectmodel. Een pre-implementatiescript wordt uitgevoerd voordat het implementatieplan wordt uitgevoerd, maar het implementatieplan wordt berekend voordat het script wordt uitgevoerd. Er wordt een script na de implementatie uitgevoerd nadat het implementatieplan is voltooid.

Voorbeeld van SQL-projectbestand en syntaxis

Een SQL-projectbestand kan één script vóór de implementatie en één script na de implementatie hebben opgegeven.

In het volgende voorbeeld uit een SQL-projectbestand wordt het bestand prep-db.sql toegevoegd als een script vóór de implementatie.

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

In het volgende voorbeeld uit een SQL-projectbestand wordt het bestand populate-app-settings.sql toegevoegd als script na de implementatie.

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

Meerdere bestanden kunnen worden uitgevoerd als onderdeel van een pre-implementatie- of post-implementatiescript met behulp van een SQLCMD-script dat elk bestand op volgorde aanroept.

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

Deze bestanden moeten worden uitgesloten van de databasemodel build door in Visual Studio de Build Action eigenschap in de bestandseigenschappen in te stellen op Remove of door een vermelding voor het bestand toe te voegen in het .sqlproj bestand, waarbij het Build kenmerk is ingesteld op Remove. Wanneer het SQL-project is gebouwd, worden de extra bestanden gecombineerd in hun verwijzing naar het pre-implementatie- of post-implementatiescript in de .dacpacMicrosoft.Build.Sql project-SDK.

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

Als u in SQL-projecten in SDK-stijl een Build Remove="path\file.sql" vermelding toevoegt, wordt het bestand volledig uit het project verwijderd, waardoor het niet meer wordt weergegeven in de projectweergave van Visual Studio Code. Als u het bestand zichtbaar wilt houden terwijl het nog steeds wordt uitgesloten van modelcompilatie, voegt u het opnieuw toe als een None item:

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

Dit voorkomt dat het bestand wordt gecompileerd als onderdeel van het databasemodel terwijl het zichtbaar blijft in het project.

Tip

U kunt de scripts vóór de implementatie en na de implementatie valideren na het bouwen van het project door de .dacpac bestandsextensie te wijzigen in .zip en de .zip uit te pakken naar een map. Er is één .sql bestand aanwezig voor scripts vóór de implementatie en na de implementatie en moet de volledige Transact-SQL inhoud van alle bestanden waarnaar wordt verwezen in het oorspronkelijke SQL-project bevatten.

Scripts vóór de implementatie en na de implementatie toevoegen

Klik in Solution Explorer met de rechtermuisknop op het project en selecteer Script toevoegen>. Selecteer Pre-implementatiescript of Post-implementatiescript.

Het scriptbestand wordt toegevoegd aan het project en geopend in de query-editor, waar u het script kunt voltooien. Dit script wordt uitgevoerd voor of nadat het implementatieplan is uitgevoerd, telkens wanneer het project wordt geïmplementeerd.

Klik in Solution Explorer met de rechtermuisknop op het projectknooppunt en selecteerNieuw item>. Het dialoogvenster Nieuw item toevoegen wordt weergegeven, selecteer Alle sjablonentabel> weergeven en selecteer vervolgens Pre-Deployment Script of Post-Deployment Script.

Het scriptbestand wordt toegevoegd aan het project en geopend in de query-editor, waar u het script kunt voltooien. Dit script wordt uitgevoerd voor of nadat het implementatieplan is uitgevoerd, telkens wanneer het project wordt geïmplementeerd.

Klik in de weergave Databaseprojecten van Visual Studio Code of Azure Data Studio met de rechtermuisknop op het project en selecteer Pre-Deployment Script toevoegen of Script na implementatie toevoegen. Geef een scriptnaam op zonder de bestandsextensie.

Het scriptbestand wordt toegevoegd aan het project en geopend in de query-editor, waar u het script kunt voltooien. Dit script wordt uitgevoerd voor of nadat het implementatieplan is uitgevoerd, telkens wanneer het project wordt geïmplementeerd.

Bewerk het .sqlproj bestand rechtstreeks om scripts vóór de implementatie of na de implementatie toe te voegen. Voeg een <PreDeploy> of <PostDeploy> item toe aan de <ItemGroup> sectie van het .sqlproj bestand.

Als u bijvoorbeeld het script scripts\before-script.sql als een pre-implementatiescript aan ons project wilt toevoegen:

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

Dit script scripts\before-script.sql wordt uitgevoerd voordat het implementatieplan wordt uitgevoerd, telkens wanneer het project wordt geïmplementeerd.