使用VS2010的Database 項(xiàng)目模板統(tǒng)一管理數(shù)據(jù)庫(kù)對(duì)象
Visual Studio 2010 有一個(gè)數(shù)據(jù)庫(kù)項(xiàng)目模板:Visual Studio Database Project(以下簡(jiǎn)稱VSDP),VS 2003/2005/2008也有類似的項(xiàng)目,在VS2010上的得到了很大的加強(qiáng),現(xiàn)在還具備了智能感知,構(gòu)建時(shí)驗(yàn)證和自動(dòng)部署功能,VSDP是針對(duì)典型的數(shù)據(jù)庫(kù)開(kāi)發(fā)任務(wù)而設(shè)計(jì)的,可以對(duì)原有數(shù)據(jù)庫(kù)反向工程,添加表,存儲(chǔ)過(guò)程和其他數(shù)據(jù)庫(kù)項(xiàng)目,而且有選擇性地將修改部署到目標(biāo)數(shù)據(jù)庫(kù)中。他的主要特性有:
1、模型對(duì)比(Schema Compare)
在項(xiàng)目的維護(hù)和升級(jí)期間,至少需要維護(hù)產(chǎn)品數(shù)據(jù)庫(kù)(正在正式運(yùn)營(yíng)的數(shù)據(jù)庫(kù))、測(cè)試數(shù)據(jù)庫(kù)、開(kāi)發(fā)數(shù)據(jù)庫(kù)這三個(gè)數(shù)據(jù)庫(kù),那開(kāi)發(fā)數(shù)據(jù)庫(kù)結(jié)構(gòu)變更后,如何同步到其他兩個(gè)數(shù)據(jù)庫(kù)上呢?模型對(duì)比功能可以很好地解決此問(wèn)題。如果開(kāi)發(fā)數(shù)據(jù)庫(kù)結(jié)構(gòu)變更,可以通過(guò)選擇菜單的Data → Schema Compare → Filter中選擇Different Objects, Missing Objects or New Objects來(lái)過(guò)濾列表。這個(gè)過(guò)濾可以使我們快速地看到哪些修改需要更新到目標(biāo)數(shù)據(jù)庫(kù)中。然后我們可以保存修改腳本到一個(gè)文件中,并在T-SQL編輯器或者直接將修改精寫(xiě)入到目標(biāo)數(shù)據(jù)庫(kù)。
2、數(shù)據(jù)對(duì)比(Data Compare)
用來(lái)比較兩個(gè)數(shù)據(jù)庫(kù)的表或者視圖中數(shù)據(jù)是否相同,可進(jìn)行比較的前提是數(shù)據(jù)庫(kù)名稱一致、表具有相同的主鍵、唯一索引或唯一約束。比較完后可以對(duì)修改保存到目標(biāo)數(shù)據(jù)庫(kù)或者腳本。這個(gè)特性可以將產(chǎn)品數(shù)據(jù)庫(kù)的數(shù)據(jù)導(dǎo)入到開(kāi)發(fā)數(shù)據(jù)庫(kù)或者測(cè)試數(shù)據(jù)庫(kù),以便于開(kāi)發(fā)和測(cè)試。
3、數(shù)據(jù)生成計(jì)劃(Data Generation Plans)
在項(xiàng)目中,開(kāi)發(fā)團(tuán)隊(duì)每周至少一次提交版本到測(cè)試環(huán)境,測(cè)試人員針對(duì)新的數(shù)據(jù)結(jié)構(gòu)如何快速生成測(cè)試基礎(chǔ)數(shù)據(jù)呢? 數(shù)據(jù)生成計(jì)劃會(huì)解決此問(wèn)題。在數(shù)據(jù)生成計(jì)劃計(jì)劃中,我們要定義生成數(shù)據(jù)的表、每一個(gè)表要生成的記錄行數(shù)和要插入數(shù)據(jù)的類型。數(shù)字類型比較容易生成,針對(duì)特殊的數(shù)據(jù)比如Email、電話號(hào)碼可以通過(guò)正則表達(dá)式RegEx完成。
4、重構(gòu)(Refactor)
主要用來(lái)重命名數(shù)據(jù)庫(kù)對(duì)象,比如數(shù)據(jù)庫(kù)名稱,表名稱,視圖名稱。當(dāng)要重命名的對(duì)象改變后,對(duì)此對(duì)象的引用都會(huì)相應(yīng)地改變。
下面我們來(lái)看看這個(gè)項(xiàng)目模板的基本使用方法:
在你的解決方案中添加項(xiàng)目,選擇Database下的數(shù)據(jù)庫(kù)模板,選擇SQL Server 2008 Database Project,輸入一個(gè)項(xiàng)目的名稱,你也可以選擇一個(gè)SQL Server 2005 Database Project。
點(diǎn)擊OK按鈕后就在我們的解決方案里頭里加入了數(shù)據(jù)庫(kù)的工程:
現(xiàn)在可以通過(guò)我們數(shù)據(jù)庫(kù)工程進(jìn)行相關(guān)的數(shù)據(jù)庫(kù)開(kāi)發(fā)工作了,例如通過(guò)Tables節(jié)點(diǎn)管理數(shù)據(jù)庫(kù)表的對(duì)象:
添加一個(gè)數(shù)據(jù)庫(kù)表,例如我們現(xiàn)在要?jiǎng)?chuàng)建的一個(gè)表叫做Applications,右鍵選中Tables節(jié)點(diǎn),選擇添加一個(gè)Table
輸入表的名稱,點(diǎn)擊Add按鈕,一個(gè)數(shù)據(jù)庫(kù)表的腳本就創(chuàng)建好了,通過(guò)修改表的腳本進(jìn)行數(shù)據(jù)庫(kù)表的開(kāi)發(fā),目前只能使用T-SQL,沒(méi)有可視化的界面:
下面我們需要給這個(gè)表添加個(gè)主鍵,右鍵Tables節(jié)點(diǎn)下的Keys節(jié)點(diǎn),選擇添加一個(gè)Primiary Key
輸入Key的名稱,點(diǎn)擊Add按鈕,一個(gè)數(shù)據(jù)庫(kù)表的主鍵的腳本就創(chuàng)建好了
現(xiàn)在我們要把創(chuàng)建好的表部署到我們的開(kāi)發(fā)數(shù)據(jù)庫(kù):
通過(guò)Build我們的數(shù)據(jù)庫(kù)項(xiàng)目,VS2010會(huì)驗(yàn)證我們的數(shù)據(jù)庫(kù)腳本并把database schema寫(xiě)到.dbschema擴(kuò)展名的文件里:
部署腳本到數(shù)據(jù)庫(kù),右擊項(xiàng)目,選擇菜單項(xiàng)Deploy,VS會(huì)生成部署腳本:
然后就可以在你的開(kāi)發(fā)數(shù)據(jù)庫(kù)上運(yùn)行部署腳本。但是如果你要確保你的開(kāi)發(fā)數(shù)據(jù)庫(kù)始終和你的開(kāi)發(fā)過(guò)程同步,你可以設(shè)置你的數(shù)據(jù)庫(kù)項(xiàng)目的屬性,使得您的數(shù)據(jù)庫(kù)的任何變化都會(huì)自動(dòng)部署到開(kāi)發(fā)數(shù)據(jù)庫(kù),雙擊數(shù)據(jù)庫(kù)項(xiàng)目的屬性,選擇Deploy選項(xiàng):
選擇Deploy action,選擇Create a deployment script (.sql) and deploy to the database,”。然后使用Edit按鈕的目標(biāo)連接設(shè)置連接到你的開(kāi)發(fā)數(shù)據(jù)庫(kù)。這時(shí)運(yùn)行Deploy,就會(huì)把數(shù)據(jù)庫(kù)腳本部署到你的開(kāi)發(fā)數(shù)據(jù)庫(kù)里了。
本文鏈接:http://www.95time.cn/tech/program/2010/7604.asp
出處:藍(lán)色理想
責(zé)任編輯:bluehearts
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|