Как указать скрипты, выполняемые до или после развертывания
Скрипты, выполняемые перед развертыванием и после него, выполняют инструкции Transact-SQL до и после работы основного скрипта развертывания, который формируется на основе проекта базы данных.В проекте может быть только один скрипт, выполняемый до развертывания, и один скрипт, выполняемый после развертывания.Эти скрипты можно использовать для разных целей.Например:
Скрипт, выполняемый перед развертыванием, может копировать данные из изменяемой таблицы во временную таблицу до выполнения переформатирования и применения данных к измененной таблице в рамках скрипта, выполняемого после развертывания.
Скрипт, выполняемый после развертывания, может вставлять ссылочные данные, которые нужны в таблице.Перед вставкой данных убедитесь, что таблица еще не содержит эти данные.Если в таблице есть данные, необходимо очистить таблицу или указать, что базу данных нужно всегда создать повторно перед развертыванием.Например, добавьте следующую инструкцию к скрипту, выполняемому после развертывания.
IF (EXISTS(SELECT * FROM [dbo].[MyReferenceTable]))
BEGIN
DELETE FROM [dbo].[MyReferenceTable]
END
Добавление и изменение скриптов, выполняемых перед развертыванием и после него
В обозревателе решений разверните проект базы данных, чтобы открыть папку «Скрипты».
Щелкните правой кнопкой мыши папку «Скрипты» и выберите команду «Добавить».
В контекстном меню выберите команду «Скрипты».
Выберите пункт «Скрипт, выполняемый перед развертыванием» или «Скрипт, выполняемый после развертывания».Также скрипту можно задать имя по своему усмотрению.Щелкните «Добавить», чтобы завершить операцию.
Дважды щелкните файл в папке «Скрипты».
Откроется редактор Transact-SQL, в котором будет отображено содержимое файла.
В скриптах можно использовать синтаксис и переменные SQLCMD, которые задаются в свойствах проекта базы данных.Например:
С помощью синтаксиса SQLCMD содержимое файла можно включить в скрипт, выполняемый перед развертыванием и после него.Файлы включаются в скрипт и выполняются в порядке их определения: :r .\myfile.sql
С помощью синтаксиса SQLCMD в скрипте, выполняемом после развертывания, можно указать ссылку на переменную.Переменные SQLCMD задаются в свойствах проекта или в профиле публикации.
:setvar TableName MyTable SELECT * FROM [$(TableName)]
Дополнительные сведения об использовании SQLCMD в скриптах см. в разделе Параметры проекта базы данных.