簡介
在實際的開發過程中。很多情況下我們都需要在數據庫中插入大量測試數據來對程序的功能進行測試。而生成的測試數據往往需要符合特定規則。雖然可以自己寫一段程序來進行插入數據,但每一個項目就寫一個插入數據的程序並不明智。本文主要介紹使用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按照正則表達式,生成符合Email地址規范的值:
性別列指定只有男和女
郵件列指定郵件的正則表達式
在數據生成計划中,VS2010提供的強大功能還有外鍵約束生成數據。上面兩個表中,假設公司有1000名員工,有10個部分,對應的每生成一個部門數據則生成100個員工數據,我可以在“相關表”和“相關表設置里進行”:
一切准備就緒后,我可以通過按F5生成數據:
在SSMS中查看數據:
可以看到,數據基本符合我所需要生成的數據