Я использую проект базы данных SQL 2008 (в Visual Studio) для управления схемой и исходными тестовыми данными для моего проекта. В проекте atabase используется пост-развертывание, которое включает в себя ряд других скриптов, использующих синтаксис SQLCMD ": r".
Я хотел бы иметь возможность условно включать определенные файлы на основе переменной SQLCMD. Это позволит мне запустить проект несколько раз с нашей ночной сборкой для настройки различных версий базы данных с различными конфигурациями данных (для мультитенантной системы).
Я пробовал следующее:
IF ('$(ConfigSetting)' = 'Configuration1')
BEGIN
print 'inserting specific configuration'
:r .\Configuration1\Data.sql
END
ELSE
BEGIN
print 'inserting generic data'
:r .\GenericConfiguration\Data.sql
END
Но я получить ошибку компиляции: SQL01260: Произошла фатальная ошибка парсера: Script.PostDeployment.sql
Кто-нибудь видел эту ошибку или ему удалось настроить свой сценарий пост-развертывания таким образом, чтобы он был гибким? Или я совершенно ошибаюсь?
Спасибо, Роб
П.С. Я также попытался изменить это так, чтобы путь к файлу был переменной, , похожей на этот пост . Но это дает мне сообщение об ошибке, указывающее, что путь неверен.