之前就有想法想要讓stored procedure 也可以做版控

因為在專案開發時,有時候都會發生procedure改了後發現有問題,但也無法還原到之前的版本了

現在在vs2010中有資料庫專案(這個在之前的vs也有啦!只是都沒在用)

可以協助專案開發時針對  db做版本控管,看來還不錯用,當然我不是專家,只是對對自己試用的結果記錄下來

如果有什麼有異議的地方,當然歡迎大家指教,讓自己也可以繼續學習。

Step1:開啟vs2010,新增一個資料庫精靈專案,看你的對應的 sql server是那一個,蠻可惜的只能針對sql server,其他的db沒有辦法病厭厭

Step2:精靈的導引步驟

SNAGHTML6518cf

step3:這裡選資料專案即可,本範例不需要針對伺服器管控,按下一步

SNAGHTML6686ae

Step4:這個步驟中選擇你的db定序

SNAGHTML68897b

Step5:選擇你要連接的DB,其他的我都是照預設

SNAGHTML69e551

Step6:這裡要注意你的部署選擇,可以只產生 sql檔,也可以直接在部署時直接更新到sql server中

         這個部份在之前的專案屬性也還是可以改變的

image

Step7:按完成後的結果

SNAGHTML6ddd65

Step8:接下來先將專案加到tfs中做版控

image

Step9:我先拿一個procedure來當測試範例,直接開啟後的呈現結果

image

Step10:當切換到結構描述檢視時,看來的樣子比較像在ssms中看到的樣子,還可以針對某個項目來做單元測試

image

在工具列的上面有一排工具可以讓你連接測試你的sql語法

image

 

Step11:我簽出這個sql檔,並加一行註解,要注意的是語法中的create 不要改成alter,這樣在建置專案時會出現錯誤,在部署時

它會自動幫你做drop 後create的動作

當然你可以直接利用上述的工具列的方式去直接在vs2010中連線 db然後你procedure的測試,之後直接執行後就算是寫到sql server上了

不過要記得改create成alter不然執行會說已經存在這個procedure了

image

Step12:我假設性的修改了procedure,然後直接透過vs來部署到sql server後會發生什麼事呢?,如下圖

image

它只會幫我部署我更改過的東西,這點還蠻不錯,我原本以為是整個db重弄個什麼之類的..歡樂派對

image

這樣就真的更新了northwind中的procedure囉!

不過試用的結果是如果你在sql server的該資料庫上有建立了其他的東西,例如 table,那麼在這個專案中,並不會做同步的動作

看來是只是單方發佈了,以後就只能用這個來管理你的db,所以有時候拿來做單純一點的版控就好,例如針對procedure即可

我是不知道要怎麼可以讓專案跟db的內容做雙向同步,有人知道的話,煩請提點嘿!

嘿!才剛說完就發現到了,原來vs中也可以做同步哦,

首先要先切換到結構描述檢視,點選如下圖中的紅框的圖示

image_thumb[2]

選擇要與專案同步的DB

SNAGHTMLdb0a70_thumb[1]

按下確定後就會做比較,如果你有在db上有新的物件的話,可以按下”寫入更新”之後就會sync到你的專案中了,真棒

image_thumb[4]

好了,就分享到這囉!

arrow
arrow
    全站熱搜

    丫德 發表在 痞客邦 留言(1) 人氣()