Question

Nous utilisons un projet de base de données Visual Studio pour le contrôle de source du schéma de notre base de données. Nous souhaitons également créer un script pour certaines données (valeurs de configuration, etc.) de la base de données. Nous utilisons donc un utilitaire de ligne de commande personnalisé pour transférer les données dans des scripts d'insertion. Un fichier représente les données de script d'une table.

Il existe un certain script SQL, appelé script de post-déploiement, qui est automatiquement exécuté après la commande Deploy du projet. Il est recommandé de lier d'autres fichiers de script ici, et nous aimerions lier nos scripts d'insertion de données.

Les instructions disent d'utiliser cette commande pour analyser des fichiers arbitraires

SQLCMD :r <filename>

Le problème, c’est que je ne vois pas comment mes collègues pourront l’utiliser quand ils le téléchargeront du contrôle de code source, car le répertoire de démarrage de la commande: r se trouve où devenv.exe (le dév. ) se trouve.

Abordons-nous le problème de scripting des données avec le bon angle avec les bons outils? Et si tel est le cas, comment puis-je obtenir le chemin du fichier de script post-déploiement en cours d’exécution ou comment analyser les scripts d’insertion sans coder en dur leur chemin dans le script de post-déploiement?

Était-ce utile?

La solution

Eh bien, il s’avère qu’il suffit de spécifier le chemin relatif du fichier de script. J'ai été induit en erreur par la fonction de validation de la syntaxe SQL de Visual Studio, qui évaluait le chemin après: r en utilisant l'emplacement de devenv.exe comme répertoire de départ.

Toutefois, lorsque Deploy est exécuté sur le projet, la commande: r utilise le répertoire du script comme répertoire de départ afin que l'emplacement du fichier puisse être indiqué facilement à l'aide d'un chemin relatif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top