Megosztás a következőn keresztül:


Telepítés előtti és utáni szkriptek áttekintése

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Az üzembe helyezés előtti és utáni szkriptek olyan SQL-szkriptek, amelyek az üzembe helyezés során végrehajtandó projekt részét képezik. A telepítés előtti/utáni szkripteket a .dacpac tartalmazza, de ezek nincsenek lefordítva vagy ellenőrizve az adatbázis objektum modelljével. A telepítés előtti szkriptet végrehajtják, mielőtt a telepítési terv végrehajtásra kerül, de a telepítési terv kiszámítása a szkript futtatása előtt történik. A telepítés utáni szkript a telepítési terv befejezése után kerül végrehajtásra.

SQL-projektfájl mintája és szintaxisa

Egy SQL projektfájl megadhat egyetlen előtelepítési szkriptet és egyetlen utótelepítési szkriptet.

A következő példa egy SQL projektfájlból a(z) prep-db.sql fájlt adja hozzá telepítés előtti szkriptként.

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

A következő példa egy SQL-projektfájlból az üzembe helyezés utáni szkriptként adja hozzá a fájlt populate-app-settings.sql .

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

Több fájl is végrehajtható egy elő- vagy utótelepítési szkript részeként egy SQLCMD szkript segítségével, amely sorrendben meghívja az egyes fájlokat.

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

Azokat a fájlokat ki kell zárni az adatbázis-modell építéséből úgy, hogy a fájltulajdonságok között a Build Action tulajdonságot Remove-re állítjuk a Visual Studio-ban, vagy hozzáadunk egy bejegyzést a fájlhoz a .sqlproj fájlban, ahol a Build attribútum Remove értékre van állítva. Amikor az SQL-projekt felépül, a további fájlokat a Microsoft.Build.Sql projekt fejlesztői készlet .dacpac egyesíti a hivatkozott üzembe helyezés előtti vagy utáni szkripttel.

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

Tip

A projekt buildelése után érvényesítheti az üzembe helyezés előtti és utáni szkripteket úgy, hogy a .dacpac fájlkiterjesztést .zip-ra módosítja, és kicsomagolja a .zip-t egy mappába. Egyetlen .sql fájl található az üzembe helyezés előtti és az üzembe helyezés utáni szkriptekhez, és az eredeti SQL-projektben található összes hivatkozott fájl teljes Transact-SQL tartalmát tartalmaznia kell.

Telepítés előtti és utáni szkriptek hozzáadása

A Solution Explorer-ban kattintson a jobb gombbal a projektre, majd válassza a Hozzáadás>Script lehetőséget. Válassza az üzembe helyezés előtti vagyaz üzembe helyezés utáni szkriptet.

A szkriptfájlt a projekthez adják, és megnyitják a lekérdezésszerkesztőben, ahol befejezheti a szkriptet. Ez a szkript minden alkalommal lefut, mielőtt vagy miután a telepítési terv végrehajtása megtörténik, amikor a projektet telepítik.

A Megoldáskezelőbenkattintson a jobb gombbal a projektcsomópontra, és válassza hozzáadása, majd Új elemlehetőséget. Megjelenik az Új elem hozzáadása párbeszédpanel, válassza a Összes sablon megjelenítése lehetőséget. majd Table. Válassza az üzembe helyezés előtti vagyaz üzembe helyezés utáni szkriptet.

A szkriptfájlt a projekthez adják, és megnyitják a lekérdezésszerkesztőben, ahol befejezheti a szkriptet. Ez a szkript minden alkalommal lefut, mielőtt vagy miután a telepítési terv végrehajtása megtörténik, amikor a projektet telepítik.

Az Adatbázis-projektek nézetben a VS Code vagy az Azure Data Studio alkalmazásban kattintson jobb gombbal a projektre, és válassza a Pre-deployment Script hozzáadása vagy a Post-deployment Script hozzáadása lehetőséget. Adja meg a szkript nevét fájlkiterjesztés nélkül.

A szkriptfájlt a projekthez adják, és megnyitják a lekérdezésszerkesztőben, ahol befejezheti a szkriptet. Ez a szkript minden alkalommal lefut, mielőtt vagy miután a telepítési terv végrehajtása megtörténik, amikor a projektet telepítik.

Szerkessze közvetlenül a .sqlproj fájlt, hogy hozzáadjon telepítés előtti vagy utáni szkripteket. Adjon hozzá egy <PreDeploy> vagy <PostDeploy> elemet a <ItemGroup> szakaszhoz a .sqlproj fájlban.

Például a scripts\before-script.sql szkriptet projektünkhöz előtelepítési szkriptként hozzáadva a következő lépéseket tehetjük meg:

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

Ez a szkript scripts\before-script.sql minden alkalommal lefut, mielőtt a telepítési terv végrehajtásra kerül, amikor a projekt telepítve van.