Поделиться через


Как указать скрипты, выполняемые до или после развертывания

 

Скрипты, выполняемые перед развертыванием и после него, выполняют инструкции Transact-SQL до и после работы основного скрипта развертывания, который формируется на основе проекта базы данных.В проекте может быть только один скрипт, выполняемый до развертывания, и один скрипт, выполняемый после развертывания.Эти скрипты можно использовать для разных целей.Например:

  • Скрипт, выполняемый перед развертыванием, может копировать данные из изменяемой таблицы во временную таблицу до выполнения переформатирования и применения данных к измененной таблице в рамках скрипта, выполняемого после развертывания.

  • Скрипт, выполняемый после развертывания, может вставлять ссылочные данные, которые нужны в таблице.Перед вставкой данных убедитесь, что таблица еще не содержит эти данные.Если в таблице есть данные, необходимо очистить таблицу или указать, что базу данных нужно всегда создать повторно перед развертыванием.Например, добавьте следующую инструкцию к скрипту, выполняемому после развертывания.

IF (EXISTS(SELECT * FROM [dbo].[MyReferenceTable]))
BEGIN
    DELETE FROM [dbo].[MyReferenceTable]
END

Добавление и изменение скриптов, выполняемых перед развертыванием и после него

  1. В обозревателе решений разверните проект базы данных, чтобы открыть папку «Скрипты».

  2. Щелкните правой кнопкой мыши папку «Скрипты» и выберите команду «Добавить».

  3. В контекстном меню выберите команду «Скрипты».

  4. Выберите пункт «Скрипт, выполняемый перед развертыванием» или «Скрипт, выполняемый после развертывания».Также скрипту можно задать имя по своему усмотрению.Щелкните «Добавить», чтобы завершить операцию.

  5. Дважды щелкните файл в папке «Скрипты».

    Откроется редактор Transact-SQL, в котором будет отображено содержимое файла.

В скриптах можно использовать синтаксис и переменные SQLCMD, которые задаются в свойствах проекта базы данных.Например:

  • С помощью синтаксиса SQLCMD содержимое файла можно включить в скрипт, выполняемый перед развертыванием и после него.Файлы включаются в скрипт и выполняются в порядке их определения: :r .\myfile.sql

  • С помощью синтаксиса SQLCMD в скрипте, выполняемом после развертывания, можно указать ссылку на переменную.Переменные SQLCMD задаются в свойствах проекта или в профиле публикации.

    :setvar TableName MyTable
    SELECT * FROM [$(TableName)]
    

Дополнительные сведения об использовании SQLCMD в скриптах см. в разделе Параметры проекта базы данных.

См. также

Разработка базы данных вне сети с учетом проекта