天天看點

使用VS2010的Database 項目模闆統一管理資料庫對象

Visual Studio 2010 有一個資料庫項目模闆:Visual Studio Database Project(以下簡稱VSDP),VS 2003/2005/2008也有類似的項目,在VS2010上的得到了很大的加強,現在還具備了智能感覺,建構時驗證和自動部署功能,VSDP是針對典型的資料庫開發任務而設計的,可以對原有資料庫反向工程,添加表,存儲過程和其他資料庫項目,而且有選擇性地将修改部署到目标資料庫中。他的主要特性有:

1、模型對比(Schema Compare)

在項目的維護和更新期間,至少需要維護産品資料庫(正在正式營運的資料庫)、測試資料庫、開發資料庫這三個資料庫,那開發資料庫結構變更後,如何同步到其他兩個資料庫上呢?模型對比功能可以很好地解決此問題。如果開發資料庫結構變更,可以通過選擇菜單的Data → Schema Compare → Filter中選擇Different Objects, Missing Objects or New Objects來過濾清單。這個過濾可以使我們快速地看到哪些修改需要更新到目标資料庫中。然後我們可以儲存修改腳本到一個檔案中,并在T-SQL編輯器或者直接将修改精寫入到目标資料庫。

2、資料對比(Data Compare)

用來比較兩個資料庫的表或者視圖中資料是否相同,可進行比較的前提是資料庫名稱一緻、表具有相同的主鍵、唯一索引或唯一限制。比較完後可以對修改儲存到目标資料庫或者腳本。這個特性可以将産品資料庫的資料導入到開發資料庫或者測試資料庫,以便于開發和測試。

3、資料生成計劃(Data Generation Plans)

在項目中,開發團隊每周至少一次送出版本到測試環境,測試人員針對新的資料結構如何快速生成測試基礎資料呢? 資料生成計劃會解決此問題。在資料生成計劃計劃中,我們要定義生成資料的表、每一個表要生成的記錄行數和要插入資料的類型。數字類型比較容易生成,針對特殊的資料比如Email、電話号碼可以通過正規表達式RegEx完成。

4、重構(Refactor)

主要用來重命名資料庫對象,比如資料庫名稱,表名稱,視圖名稱。當要重命名的對象改變後,對此對象的引用都會相應地改變。

下面我們來看看這個項目模闆的基本使用方法:

在你的解決方案中添加項目,選擇Database下的資料庫模闆,選擇SQL Server 2008 Database Project,輸入一個項目的名稱,你也可以選擇一個SQL Server 2005 Database Project。

使用VS2010的Database 項目模闆統一管理資料庫對象

點選OK按鈕後就在我們的解決方案裡頭裡加入了資料庫的工程:

使用VS2010的Database 項目模闆統一管理資料庫對象

現在可以通過我們資料庫工程進行相關的資料庫開發工作了,例如通過Tables節點管理資料庫表的對象:

使用VS2010的Database 項目模闆統一管理資料庫對象

添加一個資料庫表,例如我們現在要建立的一個表叫做Applications,右鍵選中Tables節點,選擇添加一個Table

使用VS2010的Database 項目模闆統一管理資料庫對象

輸入表的名稱,點選Add按鈕,一個資料庫表的腳本就建立好了,通過修改表的腳本進行資料庫表的開發,目前隻能使用T-SQL,沒有可視化的界面:

使用VS2010的Database 項目模闆統一管理資料庫對象

下面我們需要給這個表添加個主鍵,右鍵Tables節點下的Keys節點,選擇添加一個Primiary Key

使用VS2010的Database 項目模闆統一管理資料庫對象

輸入Key的名稱,點選Add按鈕,一個資料庫表的主鍵的腳本就建立好了

使用VS2010的Database 項目模闆統一管理資料庫對象

現在我們要把建立好的表部署到我們的開發資料庫:

通過Build我們的資料庫項目,VS2010會驗證我們的資料庫腳本并把database schema寫到.dbschema擴充名的檔案裡:

使用VS2010的Database 項目模闆統一管理資料庫對象

部署腳本到資料庫,右擊項目,選擇菜單項Deploy,VS會生成部署腳本:

使用VS2010的Database 項目模闆統一管理資料庫對象

然後就可以在你的開發資料庫上運作部署腳本。但是如果你要確定你的開發資料庫始終和你的開發過程同步,你可以設定你的資料庫項目的屬性,使得您的資料庫的任何變化都會自動部署到開發資料庫,輕按兩下資料庫項目的屬性,選擇Deploy選項:

使用VS2010的Database 項目模闆統一管理資料庫對象

選擇Deploy action,選擇Create a deployment script (.sql) and deploy to the database,”。然後使用Edit按鈕的目标連接配接設定連接配接到你的開發資料庫。這時運作Deploy,就會把資料庫腳本部署到你的開發資料庫裡了。

VS2010中建立自定義SQL Rule

Using an Existing Database

Adding Tables

Adding Stored Procedures

Building and Deployment