2009-03-09 6 views
4

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 voulons également écrire certaines données (valeurs de configuration, etc.) à partir de la base de données. Nous utilisons donc un utilitaire de ligne de commande personnalisé pour déverser des données dans des scripts d'insertion. Un fichier représente les données scriptées d'une table.Traitement de SQLCMD: r dans un script de post-déploiement

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

Instructions disent utiliser cette commande pour analyser des fichiers arbitraires

SQLCMD :r <filename> 

Le problème est, je ne vois pas comment mes collègues seront en mesure de l'utiliser quand ils téléchargent du contrôle de source, parce que la Le répertoire de départ pour la commande: r est où se trouve le devenv.exe (le dev.

Est-ce que nous abordons le problème de l'écriture de données à partir de l'angle droit avec les bons outils? Et si c'est le cas, comment puis-je obtenir le chemin du fichier de script de post-déploiement, ou comment analyser les scripts d'insertion sans coder en dur leur chemin dans le script de post-déploiement?

Répondre

5

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

Cependant, lorsque Deploy est exécuté sur le projet, la commande: r utilise le répertoire du script comme répertoire de départ, ce qui permet de donner facilement l'emplacement du fichier en utilisant un chemin relatif.

Questions connexes