2016-09-28 21 views
0

當在Visual Studio中使用SQL Server數據庫項目時,如果數據庫中有超過1000個存儲過程,那麼當您導入它時,Visual Studio會將這些過程分成不同的目錄。SQL Server數據庫項目沒有正確處理新的腳本文件創建

當您嘗試通過「Schema Compare」函數將任何新的存儲過程同步到項目中後,Visual Studio會忽略此分割文件夾結構並將所有新腳本直接放入「存儲過程」文件夾中。這意味着腳本化的新存儲過程不適合現有結構,這迫使用戶要麼使用此分離結構,要麼手動更新項目引用並將文件複製回Visual Studio創建的初始結構。

步驟

  1. 創建一個新的SQL項目。
  2. 右鍵單擊解決方案資源管理器中的項目>選擇「導入」>「數據庫」。
  3. 將項目綁定到SQL2008數據庫,該數據庫擁有1000多個存儲的 過程。爲「每個文件夾的最大文件數」選擇1000。
  4. 允許VS編寫所有存儲過程的腳本。它會自動將 分成1000個批次,並根據需要爲每個批次創建一個新文件夾'Proc1','Proc2' 。
  5. 右鍵單擊SQL項目>選擇「Schema Compare」,打開一個新的比較。
  6. 通過比較SQL項目和您的 原始數據庫,驗證數據庫是否正確同步。應該沒有待處理的更改。
  7. 在已同步的數據庫中創建新的存儲過程。
  8. 再次運行比較,現在應該在'Add'類型下顯示新的存儲過程 。
  9. 單擊「更新」並允許VS爲新過程創建腳本。
  10. 不是將新腳本放在原始的1000分隔文件夾結構中,而是直接將新腳本放置在「存儲過程」文件夾中。

回答

0

這是一個有趣的場景。這些日子我會檢查一下。

這是我的2美分。在所有數據庫對象初始加載到數據庫項目後,我(或開發團隊)停止通過SSMS直接向數據庫添加新的SP或任何對象的做法。相反,我將它們添加到數據庫項目並部署到我需要它們去的所有服務器。數據庫項目就像從這一點開始就是真正的代碼源。最重要的是,您可以利用TFS分支功能來保留QA版本,即數據庫項目的Prod版本。我還嘗試給這些文件夾提供有意義的名稱,以便對Stored Proc文件夾下的SP進行分類,這有助於我將來的代碼維護。