1

場景: 我有3個環境,我正在使用,Dev,UAT和Live。每一個都有自己的數據庫MyDb_Dev,MyDb_UAT,MyDb_Live。 然後我在我的解決方案中有一個包含我所有腳本的VS2012數據庫項目。當我對位於本地的模型數據庫(MyDb_Model)進行更改時,這很好地工作。腳本FileTables

我想要做什麼: 我想用FileTables在SQL 2012(我明白如何設置),但我不知道他們如何腳本能夠配置選項處理我的環境。當我生成腳本時,它會將名稱硬編碼爲MyDb_Model作爲FileGroup。也就是說,當我嘗試發佈到我的Dev數據庫時,它抱怨數據庫選項無法使用新腳本。當我的腳本包含模型數據庫的選項時,它會在我嘗試發佈到我的開發數據庫時由於重複名稱而發生抱怨。

問: 你能使用的數據庫項目V2012是配置還是需要手工做我自己的腳本,腳本FileTables(與數據庫的選項)?

首選: 將MyDb_Model與數據庫項目進行比較。 作爲新創建的數據庫發佈到MyDb_Dev。

回答

1

聽起來像你會想要項目變量來處理這個變量包含每個環境特定的文本。然後,您會在對象中使用該變量而不是硬編碼路徑。下面將創建一個名爲「DocumentStore」的FileTable,並使用您在Project Properties - SQLCMD Variables中設置的名爲「FileTableDirectoryVariable」的變量的值。設置你的發佈配置文件中的每一個使用正確的目錄,你應該是好的。如果您對這些表使用不同的文件組,則應該使用SQLCMD變量以類似的方式調整FileGroup設置。

CREATE TABLE DocumentStore AS FileTable 
    WITH ( 
      FileTable_Directory = '$(FileTableDirectoryVariable)', 
      FileTable_Collate_Filename = database_default 
     ); 
GO 
+0

這樣做的伎倆,謝謝! – 2013-07-16 18:08:15