J'ai créé un projet de base de données dans VS2012
. J'ai ajouté une structure de base de données. Cela fonctionne très bien pour publier et comparer la base de données.
Maintenant, lors de la publication, je souhaite charger automatiquement plusieurs tables avec des données par défaut.
J'ai créé cinq fichiers de script avec des instructions INSERT
générées à partir de SQL Management Studio. Ils ont été ajoutés à un dossier Script dans mon projet de base de données.
Ensuite, je mets BuildAction=PostDeploy
. Cela fonctionne bien. MAIS pour une raison quelconque, il est uniquement possible d'avoir UN script défini sur PostDeploy
....
Je me rends compte que je peux déplacer tous les scripts dans un seul fichier. Mais j'en ai beaucoup et j'aimerais vraiment les regrouper dans des fichiers séparés pour maintenir un certain ordre.
J'ai ensuite créé un PostDeploy.sql
fichier et a essayé de référencer tous les autres fichiers de script à partir de là. L'en-tête du fichier donne des instructions:
Post-Deployment Script Template
----------------------------------------------------------------------------
This file contains SQL statements that will be appended to the build script.
Use SQLCMD syntax to include a file in the post-deployment script.
Example: :r .\myfile.sql
J'écris donc mon dossier:
:r .\MyScript1.sql
:r .\MyScript2.sql
:r .\MyScript3.sql
:r .\MyScript4.sql
:r .\MyScript5.sql
Le fichier se plaint d'une mauvaise syntaxe.
Il s'est avéré que Visual Studio m'a trompé avec de faux avertissements de syntaxe! Ma configuration était parfaitement valide.
Pour éviter les avertissements, faites un clic droit n'importe où dans le fichier et choisissez "Paramètres d'exécution - Mode SQLCMD".
Il existe également un bouton de barre d'outils nommé SQLCMD Mode qui fait la même chose.
Voici l'élément de menu au cas où vous ne trouveriez pas le bouton de la barre d'outils: