簡介
在實際的開發過程中。很多情況下我們都需要在資料庫中插入大量測試資料來對程式的功能進行測試。而產生的測試資料往往需要符合特定規則。雖然可以自己寫一段程式來進行插入資料,但每一個項目就寫一個插入資料的程式並不明智。本文主要介紹使用VS2010的資料產生計劃在SQL Server中產生測試資料。
產生測試資料的方法
1.手動編輯
在開發過程中,非常少量的資料可以手動插入。這個方法的缺點可想而知….插入100條資料就夠你忙乎一上午了。
2.寫程式&T-SQL語句進行插入
這個缺點也是顯而易見的,開發效率同樣底下。對於再次開發不同的程式時,程式需要修改或者重寫。甚至對於每一個表就要寫一段代碼,並且產生的資料靈活性並不高!
比如對一個表產生1000條資料我可能就需要寫這麼多T-SQL:
可以看出,這種方法不僅麻煩,產生的測試資料也可能不符合我們需要的。
3. 使用已經上線的系統的資料
嗯,這個方法貌似不錯.簡單容易,資料量足。但先拋開新系統或完全不同的系統資料表結構改變可能無法使用已經上線的資料這個因素之外。拿客戶的商業資料進行測試..這個也太沒節操了吧……
使用VS2010的資料產生計劃來產生測試資料
VS2010提供的資料產生計劃是一個強大的工具。它可以高效的產生測試資料,其中內建的資料建置規則可以很容易的讓我們實現產生所需資料。下面來看一個實際的例子:
為了簡便起見,所產生的資料的構架只有兩個表(員工表和部門表),用外鍵串連:
在VS2010建立資料庫專案,添加SQL Server 2008資料庫專案,然後添加資料產生計劃:
在VS2010中建立資料庫連接,添加新項,在資料產生計劃中,可以看到這兩個表了:
通過指定列的屬性,我可以調整我所產生的資料的規範:
下面,我為Employee表的幾個列資料進行指定,Name列,我指定最小長度為4,最大長度為6.Gender列只允許有兩個值,男和女.而Email按照Regex,產生符合Email地址規範的值:
性別列指定只有男和女
郵件列指定郵件的Regex
在資料產生計劃中,VS2010提供的強大功能還有外鍵約束產生資料。上面兩個表中,假設公司有1000名員工,有10個部分,對應的每產生一個部門資料則產生100個員工資料,我可以在“相關表”和“相關表設定裡進行”:
一切準備就緒後,我可以通過按F5產生資料:
在SSMS中查看資料:
可以看到,資料基本符合我所需要產生的資料