使用TFS對數據庫項目進行版本控制


使用TFS已經有很長一段時間了,從TFS2008一直到現在的TFS2010,效果不錯,團隊中其他成員目前也已經適應了這種方式,包括任務分解,項目進度安排,Bug錄入,當然還有最重要的源代碼版本控制。不過,由於所有的項目基本都涉及數據庫相關的操作,而且數據庫中表、視圖、存儲過程在項目實施初期更改的機會特別大,由此以來,對於數據庫的版本控制也非常有必要,由於個人原因(主要是懶惰、拖延)和對TFS的不了解,一直未能實現。最近由於項目維護的原因,決心把數據庫項目的版本控制也實施起來,方便日后的數據庫版本維護,所以便有了這篇文章。

1.創建數據庫項目。

  • 在現有解決方案中,添加一個數據庫項目,目前我們使用的是SQL Server 2008 R2,為了設置相關信息,選擇新建“SQL Server 2008向導”,

a) 在項屬性中,將項目類型設置為“數據庫項目”,SQL腳本文件選擇“按架構”點擊“下一步”,

b) 設置數據庫選項,此處選擇排序規則為“Chinese_PRC_CI_AS”,點擊“下一步”,

c) 選中“導入現有架構”,並設置源數據庫鏈接,選擇已有的數據庫,

d) 在“配置生成/部署”中,選擇部署操作為“創建部署腳本(.sql)並部署到數據庫”(關鍵),並設置目標連接和數據庫名稱,因是對現有數據庫的維護,此處設置與“導入現有架構”設置一致。

e) 點擊“完成”

通過以上步驟,新建數據庫項目,會根據現有數據庫,將數據中所有對象定義全部生成到此項目中,我們可以很方便的更改維護表、視圖、存儲過程、觸發器。將此項目簽入到TFS上,就可以實現數據庫項目的版本控制。

2.生成部署

此處以更改和使用比較頻繁的存儲過程來說明。在SQL Server Menagement Studio中更改定義和更改存儲過程分別使用CREATE語句和ALTER語句,但是在此處,我們只需要通過CREATE語句,就可以完成存儲過程的定義與更改。數據庫項目會自行判斷數據庫服務器上的存儲過程版本與現有存儲過程是否一樣,如果不一樣,會自動將更改更新到數據庫服務器中。

完成上面的步驟,需要將數據庫項目部署到數據庫服務器上,即在此數據庫項目上點右鍵,選擇“部署”,前提是在第一步驟中選中“創建部署腳本(.sql)並部署到數據庫”。

同樣,表結構在變化之后,也會將新的表結構定義更新。與存儲過程不同的是,表結構的更改可能會影響到現有數據庫表中的數據,可能會將現有表刪除再重新建表,數據當然也會被刪除。關於這一點,可以參考Social.MSDN上的帖子。

3.總結

在前也嘗試使用數據庫項目來實現數據庫的版本控制,不過,實施過程中,一直被“SQL03070: 在此上下文中,無法識別此語句”錯誤困擾,它發生在將CREATE語句更改為ALTER的時候。在Google和Bing里面搜索不到相關中文參考內容。不過搜索“Statements Cause SQL03070 ..Not Recognized in this context“+”ALTER“,卻有不少內容,特別是看了參考1中的文章,才明白是怎么使用。在帖子中noonie對更改表結構是否會刪除數據也給出了自己的見解:

It depends on what you're trying to do. Adding columns to the end of the table "might" be safe but renaming a column or adding columns "between" existing columns will result in the table being dropped and re-created.

看來,英文不好的確不是個辦法。


參考文獻:

[1]Social.MSDN ALTER Statements Cause SQL03070 ..Not Recognized in this context.

Technorati 標簽: TFS, 數據庫項目, 版本控制, SQL03070


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM