使用VS2010的Database 項目模板統一管理數據庫對象
Visual Studio 2010 有一個數據庫項目模板:Visual Studio Database Project(以下簡稱VSDP),VS 2003/2005/2008也有類似的項目,在VS2010上的得到了很大的加強,現在還具備了智能感知,構建時驗證和自動部署功能,VSDP是針對典型的數據庫開發任務而設計的,可以對原有數據庫反向工程,添加表,存儲過程和其他數據庫項目,而且有選擇性地將修改部署到目標數據庫中。他的主要特性有:
在項目的維護和升級期間,至少需要維護產品數據庫(正在正式運營的數據庫)、測試數據庫、開發數據庫這三個數據庫,那開發數據庫結構變更後,如何同步到其他兩個數據庫上呢?模型對比功能可以很好地解決此問題。如果開發數據庫結構變更,可以通過選擇菜單的Data → Schema Compare → Filter中選擇Different Objects, Missing Objects or New Objects來過濾列表。這個過濾可以使我們快速地看到哪些修改需要更新到目標數據庫中。然後我們可以保存修改腳本到一個文件中,並在T-SQL編輯器或者直接將修改精寫入到目標數據庫。
用來比較兩個數據庫的表或者視圖中數據是否相同,可進行比較的前提是數據庫名稱一致、表具有相同的主鍵、唯一索引或唯一約束。比較完後可以對修改保存到目標數據庫或者腳本。這個特性可以將產品數據庫的數據導入到開發數據庫或者測試數據庫,以便於開發和測試。
在項目中,開發團隊每周至少一次提交版本到測試環境,測試人員針對新的數據結構如何快速生成測試基礎數據呢? 數據生成計劃會解決此問題。在數據生成計劃計劃中,我們要定義生成數據的表、每一個表要生成的記錄行數和要插入數據的類型。數字類型比較容易生成,針對特殊的數據比如Email、電話號碼可以通過正則表達式RegEx完成。
主要用來重命名數據庫對象,比如數據庫名稱,表名稱,視圖名稱。當要重命名的對象改變後,對此對象的引用都會相應地改變。
下面我們來看看這個項目模板的基本使用方法:
在你的解決方案中添加項目,選擇Database下的數據庫模板,選擇SQL Server 2008 Database Project,輸入一個項目的名稱,你也可以選擇一個SQL Server 2005 Database Project。
點擊OK按鈕後就在我們的解決方案裡頭裡加入了數據庫的工程:
現在可以通過我們數據庫工程進行相關的數據庫開發工作了,例如通過Tables節點管理數據庫表的對象:
添加一個數據庫表,例如我們現在要創建的一個表叫做Applications,右鍵選中Tables節點,選擇添加一個Table
輸入表的名稱,點擊Add按鈕,一個數據庫表的腳本就創建好了,通過修改表的腳本進行數據庫表的開發,目前只能使用T-SQL,沒有可視化的界面:
下面我們需要給這個表添加個主鍵,右鍵Tables節點下的Keys節點,選擇添加一個Primiary Key
輸入Key的名稱,點擊Add按鈕,一個數據庫表的主鍵的腳本就創建好了
現在我們要把創建好的表部署到我們的開發數據庫:
通過Build我們的數據庫項目,VS2010會驗證我們的數據庫腳本並把database schema寫到.dbschema擴展名的文件裡:
部署腳本到數據庫,右擊項目,選擇菜單項Deploy,VS會生成部署腳本:
然後就可以在你的開發數據庫上運行部署腳本。但是如果你要確保你的開發數據庫始終和你的開發過程同步,你可以設置你的數據庫項目的屬性,使得您的數據庫的任何變化都會自動部署到開發數據庫,雙擊數據庫項目的屬性,選擇Deploy選項:
選擇Deploy action,選擇Create a deployment script (.sql) and deploy to the database,”。然後使用Edit按鈕的目標連接設置連接到你的開發數據庫。這時運行Deploy,就會把數據庫腳本部署到你的開發數據庫裡了。