2016-12-01 64 views
1

我正在使用Visual Studio和SQL Server數據庫項目通過TFS維護我的數據庫對象。我在我的UnitTests中實現了一個使用RegEx模式匹配的CLR程序集。我想將此CLR部署到不同的數據庫,而不是將數據庫中其餘對象部署到的數據庫。將CLR程序集部署到與其餘對象不同的數據庫中

  • Database_1 - 包含了所有的數據庫對象
  • Database_2 - 包含CLR大會和UDF的正則表達式模式匹配。

我想創建一個腳本來將CLR程序集和相關的UDF部署到一個數據庫,同時創建腳本,將其餘的更改部署到另一個數據庫。我想這樣做使用PRE/POST腳本使用sqlcmd,因爲我認爲這是最簡單的方法來做到這一點。

這可能嗎?

+0

你是否真的需要它在一個單獨的數據庫?你可以看看做一個複合項目(2個項目,2個dacpacs,1個數據庫),並將所有內容都部署到你的單元測試環境中,但只有「真實」代碼到你的「真實」環境 –

回答

1

發佈到另一個數據庫需要一個不同的數據庫項目。他們應該能夠處於相同的解決方案中,但擁有兩個不同的數據庫項目將允許不同的發佈屬性(例如目標數據庫等)。或者,一個非常快速和容易,不用擔心任何這將是使用SQLCLR函數庫(我寫的)。免費版本的SQL#包含多個RegEx函數以及其他許多函數。您可以將安裝腳本(一旦將正確的數據庫名稱編輯到USE聲明中)保存到TFS中並完成它:-)。

+0

+1需要使用不同的數據庫項目但實際上並沒有upvoted,因爲我不知道你的圖書館,所以不知道如果我會建議或不。 – Matt

+0

標記爲答案。我最終爲SQLCLR解決方案創建了另一個數據庫項目。由於這隻會在測試期間和測試服務器上使用,因此我可以在必要時將其部署到測試服務器,並且可以在我的數據庫單元測試中引用它。 – Russ