SQL Server中生成测试数据

简介: 原文:SQL Server中生成测试数据简介      在实际的开发过程中。很多情况下我们都需要在数据库中插入大量测试数据来对程序的功能进行测试。而生成的测试数据往往需要符合特定规则。虽然可以自己写一段程序来进行插入数据,但每一个项目就写一个插入数据的程序并不明智。
原文: SQL Server中生成测试数据

简介

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

 

生成测试数据的方法

     1.手动编辑

          在开发过程中,非常少量的数据可以手动插入。这个方法的缺点可想而知….插入100条数据就够你忙乎一上午了。

 

    2.写程序&T-SQL语句进行插入

             这个缺点也是显而易见的,开发效率同样底下。对于再次开发不同的程序时,程序需要修改或者重写。甚至对于每一个表就要写一段代码,并且生成的数据灵活性并不高!

         比如对一个表生成1000条数据我可能就需要写这么多T-SQL:

        1

        可以看出,这种方法不仅麻烦,生成的测试数据也可能不符合我们需要的。

 

      3. 使用已经上线的系统的数据

          嗯,这个方法貌似不错.简单容易,数据量足。但先抛开新系统或完全不同的系统表结构改变可能无法使用已经上线的数据这个因素之外。拿客户的商业数据进行测试..这个也太没节操了吧……

 

使用VS2010的数据生成计划来生成测试数据

     VS2010提供的数据生成计划是一个强大的工具。它可以高效的生成测试数据,其中内置的数据生成规则可以很容易的让我们实现生成所需数据。下面来看一个实际的例子:

     为了简便起见,所生成的数据的构架只有两个表(员工表和部门表),用外键连接:

    3

      在VS2010创建数据库项目,添加SQL Server 2008数据库项目,然后添加数据生成计划:

    2

    在VS2010中建立数据库连接,添加新项,在数据生成计划中,可以看到这两个表了:

    4

    通过指定列的属性,我可以调整我所生成的数据的规范:

    5

    下面,我为Employee表的几个列数据进行指定,Name列,我指定最小长度为4,最大长度为6.Gender列只允许有两个值,男和女.而Email按照正则表达式,生成符合Email地址规范的值:

    6

    性别列指定只有男和女

    7

    邮件列指定邮件的正则表达式

    在数据生成计划中,VS2010提供的强大功能还有外键约束生成数据。上面两个表中,假设公司有1000名员工,有10个部分,对应的每生成一个部门数据则生成100个员工数据,我可以在“相关表”和“相关表设置里进行”:

    8

    一切准备就绪后,我可以通过按F5生成数据:

   9

   在SSMS中查看数据:

    10

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

目录
相关文章
|
5月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
简介:本文整理自阿里云高级技术专家李麟在Flink Forward Asia 2025新加坡站的分享,介绍了Flink 2.1 SQL在实时数据处理与AI融合方面的关键进展,包括AI函数集成、Join优化及未来发展方向,助力构建高效实时AI管道。
914 43
|
3月前
|
安全 数据管理 测试技术
告别蛮力:让测试数据生成变得智能而高效
告别蛮力:让测试数据生成变得智能而高效
480 120
|
5月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。
368 0
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
|
6月前
|
SQL
SQL如何只让特定列中只显示一行数据
SQL如何只让特定列中只显示一行数据
|
10月前
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
281 4
|
4月前
|
存储 测试技术 API
数据驱动开发软件测试脚本
今天刚提交了我的新作《带着ChatGPT玩转软件开发》给出版社,在写作期间跟着ChatGPT学到许多新知识。下面分享数据驱动开发软件测试脚本。
151 0
|
7月前
|
人工智能 缓存 自然语言处理
别再手搓测试数据了!AE测试数据智造系统揭秘
本文介绍如何通过构建基于大语言模型的测试数据智造Agent,解决AliExpress跨境电商测试中数据构造复杂、低效的问题,推动测试效率提升与智能化转型。
别再手搓测试数据了!AE测试数据智造系统揭秘
|
6月前
|
SQL
SQL中如何删除指定查询出来的数据
SQL中如何删除指定查询出来的数据
|
6月前
|
SQL 关系型数据库 MySQL
SQL如何对不同表的数据进行更新
本文介绍了如何将表A的Col1数据更新到表B的Col1中,分别提供了Microsoft SQL和MySQL的实现方法,并探讨了多表合并后更新的优化方式,如使用MERGE语句提升效率。适用于数据库数据同步与批量更新场景。
|
8月前
|
SQL 数据挖掘 关系型数据库
【SQL 周周练】一千条数据需要做一天,怎么用 SQL 处理电表数据(如何动态构造自然月)
题目来自于某位发帖人在某 Excel 论坛的求助,他需要将电表缴费数据按照缴费区间拆开后再按月份汇总。当时用手工处理数据,自称一千条数据就需要处理一天。我将这个问题转化为 SQL 题目。
303 12