2

事實上,以下查詢並不是我的原始資料,但我正在面對我工作中的確切問題。從而按照原樣複製問題陳述。我無法找到任何解決方案。我真的很感激以下問題的一套有任何建議或亮點:在VS2010數據庫項目中部署DefaultDataPath和DefaultLogPath

我沒有在任何模式硬編碼對象\數據庫級 對象\存儲\文件 - 無論是在數據庫和日誌文件。

,當我點擊從 項目db「部署」獲取生成部署腳本已經硬編碼:SETVAR與數據庫和日誌分配到$(DefaultDataPath)和$(DefaultLogPath)文件路徑 - 見下: :SETVAR默認數據路徑「C:\ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \」:setvar DefaultLogPath 「C:\ DB \ Microsoft SQL Server \ MSSQL10_50.MITCHELL \ MSSQL \ DATA \」。

我希望部署腳本接受數據和日誌路徑的輸入。 但是,根據當前生成的腳本,我將不得不 手動註釋上述2行,並修改CREATE DATABASE 語句,如下所示,以便每次都將 「DefaultDataPath」和「DefaultLogPath」的引用替換爲「InputDefaultDataPath」 和 「InputDefaultLogPath」 CREATE DATABASE [$(數據庫名)] ON PRIMARY(NAME = [TEST_DB],FILENAME = '$(InputDefaultDataPath)$(數據庫名)的.mdf',> SIZE = 3072 KB, FILEGROWTH = 1024 KB) SQL_Latin1_General_CP1_CI_AS LOG_LEN(NAME = [TEST_DB_log],FILENAME =>'$(InputDefaultLogPath)$(DatabaseName)_log.ldf',SIZE = 1024 KB, MAXSIZE = 2097152 MB,FILEGROWTH = 10%)COLLATE

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

阻止它將這些變量代入 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 \」。

問題2:如何使數據庫項目automaticaly腳本部署 腳本以這樣一種方式,它接受DefaultDataPath 和DefaultLogPath用戶輸入沒有我手動更改它包括 $(InputDefaultDataPath)和$(InputDefaultLogPath)變量?

回答

3

在visual studio 2010中,有一個名爲'CommentOutSetVarDeclarations'的項目設置。如果您選中此選項,則您提到的兩個默認SETVAR行將被註釋掉。

這使您可以在從SQLCMD運行部署腳本時從命令行提供$(DefaultDataPath)和$(DefaultLogPath)的值。

+2

在VS2012中,我不得不將這添加到發佈配置文件xml True gareththegeek 2014-04-08 14:43:13

相關問題