原文:SQL Server中生成测试数据

简介

     在实际的开发过程中。很多情况下我们都需要在数据库中插入大量测试数据来对程序的功能进行测试。而生成的测试数据往往需要符合特定规则。虽然可以自己写一段程序来进行插入数据,但每一个项目就写一个插入数据的程序并不明智。本文主要介绍使用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中查看数据:

   

    可以看到,数据基本符合我所需要生成的数据

SQL Server中生成测试数据的更多相关文章

  1. 如何在SQL Server中生成和使用CRUD存储过程

    在本文中,请参阅如何在SQL Server中生成和使用CRUD存储过程. 大多数数据库系统基于缩写CRUD调用的最简单的4种数据操作操作进行操作. 此首字母缩写词代表CREATE,READ,UPDAT ...

  2. 浅谈如何在SQL Server中生成脚本

    在生成脚本过程中,有很多参数可以选择,合理的配置这些参数,可以让我们很方便的按照我们的期望生成脚本. 生成脚本的一些选项,如下图: 我这里是SQL 2005 的选项, SQL 2008 的选项跟这个稍 ...

  3. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  4. ASP.NET用SQL Server中的数据来生成JSON字符串

    原文引自:  作者: 缺水的海豚  来源: 博客园  发布时间: 2010-09-21 21:47  阅读: 6136 次  推荐: 0   原文链接   [收藏] 摘要:ExtJs用到的数据内容基本 ...

  5. 在数据库中生成txt文件到网络驱动器中(计算机直接创建的网络驱动器在sql server中没有被找到)

    环境:sql server 2008 一.创建网络驱动器映射 语法:exec master..xp_cmdshell 'net use Z: \\ip地址\网络路径 密码 /user:用户名' 例如: ...

  6. Microsoft SQL Server中的事务与并发详解

    本篇索引: 1.事务 2.锁定和阻塞 3.隔离级别 4.死锁 一.事务 1.1 事务的概念 事务是作为单个工作单元而执行的一系列操作,比如查询和修改数据等. 事务是数据库并发控制的基本单位,一条或者一 ...

  7. SQL Server中TOP子句可能导致的问题以及解决办法

    简介      在SQL Server中,针对复杂查询使用TOP子句可能会出现对性能的影响,这种影响可能是好的影响,也可能是坏的影响,针对不同的情况有不同的可能性.      关系数据库中SQL语句只 ...

  8. (转)理解SQL SERVER中的分区表

    简介 分区表是在SQL SERVER2005之后的版本引入的特性.这个特性允许把逻辑上的一个表在物理上分为很多部分.而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个 ...

  9. 理解SQL SERVER中的分区表(转)

    简介 分区表是在SQL SERVER2005之后的版本引入的特性.这个特性允许把逻辑上的一个表在物理上分为很多部分.而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个 ...

随机推荐

  1. iOS发展- 文件共享(使用iTunes导入文件, 并显示现有文件)

    到今天实现功能, 由iTunes导入文件的应用程序, 并在此文档进行编辑的应用. 就像我们平时经常使用 PDF阅读这样的事情, 们能够自己导入我们的电子书. 源代码下载:https://github. ...

  2. hadoop编程小技巧(7)---自己定义输出文件格式以及输出到不同文件夹

    代码測试环境:Hadoop2.4 应用场景:当须要定制输出数据格式时能够採用此技巧,包含定制输出数据的展现形式.输出路径.输出文件名称称等. Hadoop内置的输出文件格式有: 1)FileOutpu ...

  3. WebAPI上传大文件

    今天在研究WebAPI的上传与下载,作为Rest的框架,更多是面向资源,就其本身来说,是不会涉及也不应该涉及到大文件的处理,具体多大呢,也就是ASP.NET的限值2G. ASP.NET的pipelin ...

  4. Cocos2d-x在线粒子编辑器

    自由.其效果是非常赞,可以手动调节和.出口可以上网plist档!. 住址:http://particle2dx.com/

  5. HTML基金会2----联系,像, 第,对齐

    ios讨论组1团:135718460 在web开发中.排版,布局非常重要,因此我们要把基础的东西打坚固,大家不要 慌,慢慢来. 直接把代码拿过去,直接就能够执行的. 1.标题 2.段落 3.HTML ...

  6. Hadoop2.3.0具体安装过程

    前言:       Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-co ...

  7. SEO思维的优化源于生活

    [回顾]无论哪个行业的,.学习技巧和操作非常简单,它主要是一个时间的问题?回到seo行业,操作和技能是非常easy学习,和seo入门是互联网行业最easy行业,不像有些人理解的代码,敲代码等,它必须基 ...

  8. springmvc集成Ueditor插件实现图片上传2、

    一.下载Ueditor插件. 地址:http://ueditor.baidu.com/website/download.html 二.环境搭建. 具体可以参看http://fex.baidu.com/ ...

  9. Sql Server之旅——第五站 确实不得不说的DBCC命令

    原文:Sql Server之旅--第五站 确实不得不说的DBCC命令 今天研发中心办年会,晚上就是各自部门聚餐了,我个人喜欢喝干红,在干红中你可以体味到那种酸甜苦辣...人生何尝不是这样呢???正好 ...

  10. 关于访问MSMQ远端私有队列的一点经验

    这里应该将私有队列称做"专用队列"好像更贴切一些了,O(∩_∩)O 可以访问远程主机的MSMQ的私有队列的,这个是毋庸置疑的,但需要说明的是不能通过代码创建私有队列,关于这一点,我 ...