2013-08-29 28 views
11

我試圖創建在Visual Studio中的數據庫解決方案2012年如何避免使用Visual Studio 2012數據庫項目的循環引用

我有5個數據庫,所有在同一臺服務器上存在,所以我已經導入的每個人到數據庫項目中。

不幸的是,在其他數據庫中引用對象的數據庫相當多的對象,所以我一直在努力通過增加一個數據庫參考,以創建一個數據庫變量來指代這些跨數據庫實例來解決這些。

問題是我有數據庫引用B和B還引用A,它不會允許我添加這兩個引用。我收到消息框說「添加此項目作爲參考將導致循環依賴」。

有關解決此問題的方法的任何想法?我想一種方法可能是爲每個數據庫創建一個解決方案,但是我寧願不要有一個更好的方法來完成它。

我們正在嘗試建立一個自動構建,所以我確實需要編譯數據庫項目。

回答

13

你要提取您的數據庫模式爲dacpac文件(假設你正在使用SSDT SQLProj文件,而不是舊的DBProj文件爲您的項目)。您可以通過SSMS或通過SQLPackage命令行來執行此操作。一旦提取出來,將它們放置在所有項目都可以觸及的地方(最好還是在源代碼控制之下,以便其他人都可以參考它)。將這些dacpac文件作爲數據庫引用添加到項目中,可能沒有爲DB名稱使用變量的選項。

我已經寫在我的博客中添加數據庫參考這裏: http://schottsql.blogspot.com/2012/10/ssdt-external-database-references.html

,還應注意 - 如果您正在構建從這些項目中新的數據庫,你可能需要經過若干遍。關閉該選項作爲事務運行,並在發生錯誤時失敗,以便創建一些對象,根據需要重複,直到創建所有對象。我在我的項目中使用了一個名爲「DeployType」的變量,並設置了我的前後部署腳本來以不同的方式處理DeployType的「New」,因此它不會嘗試填充/更新「New」構建的任何數據。

相關問題