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