2

Pour être vraie, la requête suivante n'est pas à l'origine la mienne, mais je suis confrontée au problème exact dans mon travail. Et donc copier l'énoncé du problème tel qu'il est. Je ne suis pas capable de trouver une solution. Je voudrais vraiment apprécier des suggestions ou des moments forts de l'ensemble problème suivant:Définition de DefaultDataPath et de DefaultLogPath lors du déploiement dans la base de données VS2010 Projet

Je n'ai aucune hardcoding dans le schéma des objets \ Base de données de niveau objets \ Storage \ Files - à la fois dans la base de données et les fichiers journaux.

Le script de déploiement qui obtient généré lorsque je clique sur "deploy" de projet db a hardcoding dans: SETVAR avec base de données et chemin du fichier journal affecté à $ (DefaultDataPath) et $ (DefaultLogPath) - voir ci-dessous: : setvar DefaultDataPath "C: \ DB \ Microsoft SQL Serveur \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \": setvar DefaultLogPath "C: \ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \".

Je souhaite que le script de déploiement accepte l'entrée pour les données et le chemin du journal. Mais basé sur le script qui est actuellement généré, je vais commenter manuellement les 2 lignes ci-dessus et modifier l'instruction CREATE DATABASE comme indiqué ci-dessous à chaque fois pour remplacer toute référence à "DefaultDataPath" et "DefaultLogPath" avec "InputDefaultDataPath" et CREATE DATABASE "InputDefaultLogPath" [$ (DatabaseName)] SUR PRINCIPAL (NOM = [TEST_DB], FILENAME = '$ (InputDefaultDataPath) $ (DatabaseName) mdf',> SIZE = 3072 KB, FILEGROWTH = 1024 Ko) LOG ON (NOM = [TEST_DB_log], FILENAME => '$ (InputDefaultLogPath) $ (DatabaseName) _log.ldf', SIZE = 1024 Ko, MAXSIZE = 2097152 MB, FILEGROWTH = 10%) COLLATE SQL_Latin1_General_CP1_CI_AS

Question 1: How do I prevent db project from scripting the below two lines and also 

l'empêcher de subsituting ces variables dans Instruction CREATE DATABASE? : setvar DefaultDataPath "C: \ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \": setvar DefaultLogPath "C: \ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \".

Question 2: Comment puis-je faire projet db déploiement de script automaticaly script de telle sorte qu'il accepte l'entrée d'utilisateur pour DefaultDataPath et DefaultLogPath sans me changer manuellement pour inclure $ (InputDefaultDataPath) et $ (InputDefaultLogPath) variable?

Répondre

3

Dans Visual Studio 2010, il existe un paramètre de projet appelé 'CommentOutSetVarDeclarations'. Si vous cochez cette option, les deux lignes SETVAR par défaut que vous mentionnez seront mises en commentaire.

Cela vous permet de fournir des valeurs pour $ (DefaultDataPath) et $ (DefaultLogPath) à partir de la ligne de commande lors de l'exécution du script de déploiement à partir de SQLCMD.

+2

Dans VS2012, j'ai dû ajouter ceci au profil de publication xml True gareththegeek

Questions connexes