2

実際には、次のクエリは本来私のものではありませんが、私は自分の仕事の正確な問題に直面しています。それで、問題文をそのままコピーします。私は解決策を見つけることができません。私は、次のような問題点セットの任意の提案やハイライトを本当に感謝:VS2010データベースプロジェクトでDefaultDataPathとDefaultLogPathを展開時に設定する

私は、スキーマ内のすべてのハードコーディングが\データベースレベル オブジェクト\ストレージ\ファイルオブジェクトはありません - データベースとログファイルの両方を。

私はプロジェクトが中にハードコーディングしている デシベルから「展開」をクリックしたときに生成されます展開スクリプト:データベースでSETVARと$(DefaultDataPath)と$(DefaultLogPath)に割り当てられたファイルパス を記録 - 以下参照: を:SETVAR DefaultDataPath "C:\ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \":setvar DefaultLogPath "C:\ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \"

デプロイスクリプトがデータとログパスの入力を受け入れるようにします。 しかし、現在生成されているスクリプトに基づいて、私は を上記の2行に手動でコメントし、 "DefaultDataPath"と "DefaultLogPath"への参照を次のように置き換えるたびに、以下のようにCREATE DATABASE ステートメントを毎回変更します。 "InputDefaultDataPath" と "InputDefaultLogPath" CREATE DATABASE [$(データベース名)] PRIMARY(NAME = [TEST_DB]、FILENAME = '$(InputDefaultDataPath)$(データベース名)の.mdf' ON、> SIZE = 3072キロバイト、 FILEGROWTH (NAME = [TEST_DB_log]、FILENAME => '$(InputDefaultLogPath)$(データベース名)名_log.ldf' ON = 1024 KB) LOG、SIZE = 1024キロバイト、 MAXSIZE = 2097152メガバイト、FILEGROWTH = 10%) 順序SQL_Latin1_General_CP1_CI_ASを照合

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

は、CREATE DATABASE文 でこれらの変数をsubsitutingからそれを防ぎますか? :setvar DefaultDataPath "C:\ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \":setvar DefaultLogPath "C:\ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \"

質問2:どのように私はそれは私が手動で $(InputDefaultDataPath)と$(InputDefaultLogPath)を含むように、それを変更することなく、DefaultDataPath とDefaultLogPathのためのユーザ入力を受け付けるようにautomaticalyスクリプト展開にDBプロジェクト スクリプト作るのですか変数?

答えて

3

Visual Studio 2010には、「CommentOutSetVarDeclarations」というプロジェクト設定があります。このオプションをチェックすると、言及した2つのデフォルトのSETVAR行がコメントアウトされます。

これにより、SQLCMDからデプロイメントスクリプトを実行するときに、コマンドラインから$(DefaultDataPath)と$(DefaultLogPath)の値を指定できます。

+2

VS2012では、これを公開プロファイルxml Trueに追加する必要がありました。 – gareththegeek

関連する問題