某日的一個早晨,產品告訴我說要把以前變動的一個功能更改回原來的設計內容,可是發現咱們以前的查詢業務邏輯實在Proc中實現的,沒有進行備份,不得已又要從新對該業務邏輯進行編碼,浪費了沒必要要的時間與精力。git
經過這件過後思考,針對業務系統,不少複雜的查詢邏輯是在PROC 中進行實現,若是哪天需求變動或者上線後發現問題須要回滾,這時候就會很是麻煩,若是能將數據庫項目中相關視圖,觸發器或存儲過程與版本管理工具結合起來的話,對於不一樣版本與不一樣分支時就能省很大一份力了,這樣就解決了不少沒必要要的麻煩。sql
爲了解決問題首先是上網查相關資料,發現不少工具,可是不盡人意,兼容性和使用規則上不是那麼完美,最後想到了宇宙第一IDE Visual Studio,也許微軟早都替咱們想好了呢,如此就發現了《SQL SERVER 數據庫項目》,在結合了git後真是屢試不爽,下面就着重介紹一下數據庫項目在系統中的應用。數據庫
有的同窗會說,我仍是習慣在SqlServer中對錶進行修改,包含業務邏輯SQL的編寫,還有些ef code first 相關的項目都是會直接操做到DB項目的,無妨,接下來我來看數據庫項目重要一個功能,架構比較架構
首先我在Person 內經過Sql Server新增一個字段工具
alter table person add DepartmentId int null
增長完畢後,右鍵咱們的數據庫項目,點擊架構比較,這裏須要進行區分,假如你在VS內更改的表結構往數據庫更新,就將數據項目放置左邊,從數據庫往數據庫項目更新,反之,不然更新反了後果但是很糟糕的,選擇數據源後,點擊比較,VS就會自動比較出當前項目與比較項目的差別,這裏就能夠根據你本身的須要進行一個勾選,而後點擊更新後,就會將左邊的架構更新至右邊了。編碼
更新完畢以後,數據庫項目中對應的表結構、存儲過程、觸發器等文件就會變成對應的物理文件,這些文件咱們能夠將它放置代碼管理工具進行管理了,而且很好的註釋這次更改的內容或新增的需求等,例如:spa
git add person.sql插件
git commit -ma "人員表增長部門Id"設計
git push code
經過代碼管理工具咱們就能將咱們的數據項目打成一個一個分支,很方便查到咱們每一個時期對應的結構文件了。
本文只是簡單記錄數據庫項目在實際開發過程當中帶給咱們的便利,讓更多人知道這個實用的工具,其中還有不少坑須要各位一點一點去發現,這裏就不一細說了,文章有寫的不當的地方,請及時指出,如本文對您有所幫助,也請點個推薦,您的確定也是是我最大的動力。thanks