2011-11-17 154 views
1

我有一個數據庫項目,它在幾個視圖和存儲過程中使用鏈接服務器。共享數據庫在TFS 2010團隊項目集合之間的項目

根據微軟的Visual Studio 2010數據庫項目不明確支持鏈接的服務器,但你可以使用參考和SQLCMD變量樣的本事: http://msdn.microsoft.com/en-us/library/bb386242.aspx

我的數據庫(數據庫本身)有一個鏈接服務器結合倉庫數據庫。 Warehouse數據庫項目存儲在單獨的Team Project Collection中。

有什麼方法可以在我的項目中添加倉庫項目作爲參考?

回答

1

以下文章解釋瞭如何在數據庫項目中使用引用變量。 http://msdn.microsoft.com/en-us/library/bb386242.aspx

當您引用不在同一解決方案中的數據庫時(參見第一個圖表,第二行),這是必需的。

就我而言,我可能會爲每個不同的業務環境(內部應用程序,外部應用程序,倉庫等)分別提供解決方案。這些解決方案中的每一個都有幾個數據庫但數據庫需要引用不在同一解決方案中的數據庫(例如,內部數據庫可能有存儲從外部數據庫中提取數據的存儲過程)。

在這種情況下,我認爲最好的解決方案是引用項目生成時生成的.dbschema文件。您可以爲每個項目配置夜間構建,並將構建輸出複製到特定的共享驅動器位置。然後,您可以通過向數據庫的.dbschema(在共享驅動器上)添加數據庫引用(在上面的文章中進行描述),將任何數據庫項目指向任何其他數據庫的模式。

如果你想讓它更復雜,你可以修改生成的模板必要的.dbschema文件從生成輸出複製到每一個項目,並檢查他們進來

的情況下數據庫不有一個項目並且沒有被主動更改,那麼有必要爲數據庫創建一個臨時數據庫項目,以便您可以構建一個.dbschema文件。然後可以將構建的.dbschema文件簽入到依賴項目中,除非更改,否則不必再次生成它。

我會盡我所能一個例子...

問題: 項目ABC依賴於數據倉庫,並在項目XYZ。 XYZ項目採用不同的解決方案進行源代碼管理,但倉庫不在源代碼管理中。

解決方案

  1. 項目創建一個每晚構建XYZ
  2. 配置構建輸出目錄去共享驅動器
  3. 創建項目ABC自定義生成模板將複製XYZ.dbschema文件放入ABC項目並在
  4. 中檢查
  5. 在項目ABC中,右鍵單擊「數據庫引用」並添加對XYZ的引用,指定XYZ。找到dbschema文件(而不是XYZ數據庫項目,這是解決方案外)
  6. 創建參考變量XYZ項目(不知道這是必要的...)
  7. 中存儲的特效替換爲XYZ引用與參考&意見您在上一步中創建的變量(不確定這是必要的...)
  8. 現在ABC中的參考文件應該解析爲XYZ。
  9. 創建一個新的數據庫項目(這可能是暫時的,扔掉的項目)
  10. 有它拉的定義從倉庫(右鍵單擊項目,選擇「從數據庫導入」)
  11. 生成項目
  12. 複製從生成輸出Warehouse.dbschema文件到ABC項目
  13. 在項目ABC,「數據庫引用」單擊鼠標右鍵,並加入到Warehouse.dbschema參考文件
  14. 創建的參考變量倉庫
  15. 用參考變量替換對倉庫的參考
  16. 現在可以解決ABC中倉庫中的引用。

我不知道它是否會像這樣工作,但那是理論。希望它有幫助...