Условная логика в сценарии PostDeployment.sql с использованием SQLCMD

Я использую проект базы данных 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

Кто-нибудь видел эту ошибку или ему удалось настроить свой сценарий пост-развертывания таким образом, чтобы он был гибким? Или я совершенно ошибаюсь?

Спасибо, Роб

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

52
задан Community 23 May 2017 в 02:26
поделиться