Udostępnij za pomocą


Omówienie skryptów przed wdrożeniem i po wdrożeniu

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Skrypty przed wdrożeniem i po wdrożeniu to skrypty SQL zawarte w projekcie, które mają być wykonywane podczas wdrażania. Skrypty przed/po wdrożeniu są uwzględniane w elemecie .dacpac , ale nie są kompilowane ani weryfikowane za pomocą modelu obiektów bazy danych. Skrypt przed wdrożeniem jest wykonywany przed wykonaniem planu wdrożenia, ale plan wdrożenia jest obliczany przed wykonaniem skryptu. Skrypt po wdrożeniu jest wykonywany po zakończeniu planu wdrożenia.

Przykład i składnia pliku projektu SQL

Plik projektu SQL może mieć określony pojedynczy skrypt przed wdrożeniem i pojedynczy skrypt po wdrożeniu.

Poniższy przykład z pliku projektu SQL dodaje plik prep-db.sql jako skrypt przed wdrożeniem.

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

Poniższy przykład z pliku projektu SQL dodaje plik populate-app-settings.sql jako skrypt po wdrożeniu.

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

Wiele plików można wykonać w ramach skryptu przed wdrożeniem lub po wdrożeniu przy użyciu skryptu SQLCMD, który wywołuje każdy plik w kolejności.

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

Te pliki należy wykluczyć z kompilacji modelu bazy danych, ustawiając Build Action właściwość na Remove we właściwościach pliku w programie Visual Studio lub dodając wpis dla pliku w .sqlproj pliku z atrybutem ustawionym Build na Remove. Po skompilowaniu projektu SQL dodatkowe pliki są łączone w odwołania do skryptu przed wdrożeniem lub po wdrożeniu w .dacpac zestawie SDK projektu Microsoft.Build.Sql.

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

Tip

Skrypty przed wdrożeniem i po wdrożeniu można zweryfikować po kompilacji projektu, zmieniając rozszerzenie pliku .dacpac na .zip i rozpakowując .zip do folderu. Pojedynczy .sql plik jest obecny dla skryptów przed wdrożeniem i po wdrożeniu i powinien zawierać całą zawartość Transact-SQL wszystkich plików, do których odwołuje się projekt SQL.

Dodawanie skryptów przed wdrożeniem i po wdrożeniu

W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt i wybierz polecenie Dodaj>skrypt. Wybierz pozycję Skrypt przed wdrożeniem lub Skrypt po wdrożeniu.

Plik skryptu jest dodawany do projektu i otwierany w edytorze zapytań, gdzie można ukończyć skrypt. Ten skrypt zostanie wykonany przed lub po wykonaniu planu wdrożenia za każdym razem, gdy projekt zostanie wdrożony.

W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz pozycję Dodaj, a następnie Nowy element. Zostanie wyświetlone okno dialogowe Dodawanie nowego elementu , wybierz pozycję Pokaż wszystkie szablony. a następnie Tabela. Wybierz pozycję Skrypt przed wdrożeniem lub Skrypt po wdrożeniu.

Plik skryptu jest dodawany do projektu i otwierany w edytorze zapytań, gdzie można ukończyć skrypt. Ten skrypt zostanie wykonany przed lub po wykonaniu planu wdrożenia za każdym razem, gdy projekt zostanie wdrożony.

W widoku Projekty bazy danych programu VS Code lub Azure Data Studio kliknij prawym przyciskiem myszy projekt i wybierz polecenie Dodaj skrypt przed wdrożeniem lub Dodaj skrypt po wdrożeniu. Podaj nazwę skryptu bez rozszerzenia pliku.

Plik skryptu jest dodawany do projektu i otwierany w edytorze zapytań, gdzie można ukończyć skrypt. Ten skrypt zostanie wykonany przed lub po wykonaniu planu wdrożenia za każdym razem, gdy projekt zostanie wdrożony.

Edytuj bezpośrednio plik .sqlproj, aby dodać skrypty przed- lub powdrożeniowe. Dodaj element <PreDeploy> lub <PostDeploy> do <ItemGroup> sekcji .sqlproj pliku.

Na przykład, aby dodać skrypt scripts\before-script.sql do naszego projektu jako skrypt przed wdrożeniem:

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

Ten skrypt scripts\before-script.sql jest wykonywany przed wykonaniem planu wdrożenia za każdym razem, gdy projekt zostanie wdrożony.