J'utilise un projet de base de données SQL 2008 (dans Visual Studio) pour gérer le schéma et les données de test initiales de mon projet. Le projet de base de données utilise un post-déploiement qui comprend un certain nombre d'autres scripts utilisant la syntaxe ":r" de SQLCMD.
J'aimerais pouvoir inclure de manière conditionnelle certains fichiers en fonction d'une variable SQLCMD. Cela me permettra d'exécuter le projet plusieurs fois dans le cadre de notre construction nocturne afin de configurer différentes versions de la base de données avec différentes configurations des données (pour un système multi-tenant).
J'ai essayé ce qui suit :
IF ('$(ConfigSetting)' = 'Configuration1')
BEGIN
print 'inserting specific configuration'
:r .\Configuration1\Data.sql
END
ELSE
BEGIN
print 'inserting generic data'
:r .\GenericConfiguration\Data.sql
END
Mais je reçois une erreur de compilation : SQL01260 : Une erreur d'analyse fatale s'est produite : script.PostDeployment.sql
Est-ce que quelqu'un a vu cette erreur ou a réussi à configurer son script post-déploiement pour être flexible de cette façon ? Ou est-ce que je m'y prends complètement de travers ?
Merci, Rob
P.S. J'ai également essayé de modifier cette procédure pour que le chemin d'accès au fichier soit une variable, similaire à ce poste . Mais cela me donne une erreur disant que le chemin est incorrect.