讓你的SqlServer的DB可以做版控
之前就有想法想要讓stored procedure 也可以做版控
因為在專案開發時,有時候都會發生procedure改了後發現有問題,但也無法還原到之前的版本了
現在在vs2010中有資料庫專案(這個在之前的vs也有啦!只是都沒在用)
可以協助專案開發時針對 db做版本控管,看來還不錯用,當然我不是專家,只是對對自己試用的結果記錄下來
如果有什麼有異議的地方,當然歡迎大家指教,讓自己也可以繼續學習。
Step1:開啟vs2010,新增一個資料庫精靈專案,看你的對應的 sql server是那一個,蠻可惜的只能針對sql server,其他的db沒有辦法
Step2:精靈的導引步驟
step3:這裡選資料專案即可,本範例不需要針對伺服器管控,按下一步
Step4:這個步驟中選擇你的db定序
Step5:選擇你要連接的DB,其他的我都是照預設
Step6:這裡要注意你的部署選擇,可以只產生 sql檔,也可以直接在部署時直接更新到sql server中
這個部份在之前的專案屬性也還是可以改變的
Step7:按完成後的結果
Step8:接下來先將專案加到tfs中做版控
Step9:我先拿一個procedure來當測試範例,直接開啟後的呈現結果
Step10:當切換到結構描述檢視時,看來的樣子比較像在ssms中看到的樣子,還可以針對某個項目來做單元測試
在工具列的上面有一排工具可以讓你連接測試你的sql語法
Step11:我簽出這個sql檔,並加一行註解,要注意的是語法中的create 不要改成alter,這樣在建置專案時會出現錯誤,在部署時
它會自動幫你做drop 後create的動作
當然你可以直接利用上述的工具列的方式去直接在vs2010中連線 db然後你procedure的測試,之後直接執行後就算是寫到sql server上了
不過要記得改create成alter不然執行會說已經存在這個procedure了
Step12:我假設性的修改了procedure,然後直接透過vs來部署到sql server後會發生什麼事呢?,如下圖
它只會幫我部署我更改過的東西,這點還蠻不錯,我原本以為是整個db重弄個什麼之類的..
這樣就真的更新了northwind中的procedure囉!
不過試用的結果是如果你在sql server的該資料庫上有建立了其他的東西,例如 table,那麼在這個專案中,並不會做同步的動作
看來是只是單方發佈了,以後就只能用這個來管理你的db,所以有時候拿來做單純一點的版控就好,例如針對procedure即可
我是不知道要怎麼可以讓專案跟db的內容做雙向同步,有人知道的話,煩請提點嘿!
嘿!才剛說完就發現到了,原來vs中也可以做同步哦,
首先要先切換到結構描述檢視,點選如下圖中的紅框的圖示
選擇要與專案同步的DB
按下確定後就會做比較,如果你有在db上有新的物件的話,可以按下”寫入更新”之後就會sync到你的專案中了,真棒
好了,就分享到這囉!
‧覺得文章不錯請給我一個『讚』作為鼓勵喔!