公告版位
哈囉,丫德我會常常更新一些工作上的心情記事及資訊科技新知與大家分享...

之前就有想法想要讓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]

好了,就分享到這囉!

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


留言列表 (1)

發表留言
  • Kim
  • 讚啦,省去從頭摸的功夫