ApexSQL Generate 2020是专为SQL Server打造的随机测试数据生成器,能够轻松生成SQL Server的随机测试数据或是指定表的SQL测试数据,此外ApexSQL Generate还支持预定义生成器、表格映射、生成数据的预览等多种功能,很好的满足用户的SQL数据的生成和测试的需求。
ApexSQL Generate是针对数据库的“编程软件”,可以生成指定表的SQL测试数据、快速生成数百万行或是使用详细选项自定义测试数据计划,并将测试数据批量导出为SQL、XML、CSV、JSON、Excel等格式,适合广大SQL Server数据库开发人员使用。
ApexSQL Generate特色
1、生成指定表的SQL测试数据
2、将测试数据导出到SQL,XML,CSV,JSON,Excel
3、快速生成数百万行
4、使用详细选项自定义测试数据计划
5、支持各种SQL数据类型
6、从多个生成器中选择(随机,列表等)
7、通过外键支持保持数据一致性
8、模拟真实的测试数据
ApexSQL Generate功能
1、完整的SQL Server数据类型支持
跨所有SQL Server数据类型生成测试数据
2、预定义的生成器
使用150多个预定义的生成器来获取有意义的数据,例如姓名,地址,信用卡号,社会保险号
3、跨列依赖性支持
使用预定义的条件,字符串,日期和数字函数,根据另一列的值生成测试数据
4、客制化
使用各种各样的预定义选项来自定义数据,例如种子,长度,最小值和最大值,数据的唯一性以及空值的百分比。
5、用户定义的生成器
保存任何生成器的设置,以便以后可以在已经准备好的设置中重复使用。
6、表映射
使用智能列识别模式用来自外部源(如其他数据库表和视图或CSV文件)的数据填充表。
7、触发和检查约束处理
禁用触发器和检查约束,以避免引用完整性错误
8、关系完整性支持
在生成过程中包括或排除依赖对象
9、出口商品
针对数据库执行生成的数据或选择导出选项之一
10、生成的数据预览
在执行或导出之前预览生成的数据
11、GUI警告
在树形视图和预览面板中显示错误,警告和信息消息,其中包括错误的生成器设置,循环依赖项,约束违例,有关为选定列强制执行的DELETE触发器的信息消息等
12、后期生成摘要
跟踪进度,可能的错误以及成功插入数据库的行数以及生成过程的时间跨度
13、模块化测试计划
通过复制现有数据库设置将继承构建到测试数据计划中
14、命令行界面
完全自动化测试数据生成过程。
15、视觉主题
使用界面主题自定义外观。
ApexSQL Generate生成随机测试数据
随机数生成器创建从开始到最终值的一系列随机值。生成的值序列以伪随机(种子随机)方式创建,这意味着该序列取决于Seed的值。可在此链接上找到有关种子及其影响生成序列的方式的更多信息。
对于任何给定的SQL类型,Random生成器都有3个选项:
种子值–确定所生成序列中值的顺序
唯一–从生成的序列中过滤出所有重复的值,而每个值仅保留一个实例。如果为列分配了唯一约束,则会自动选中此选项
允许为空–将NULL值插入到生成的序列中。NULL值的数量确定为包含所选列的表的请求行数的百分比。百分比值是通过空值百分比选项指定的。
可以为任何SQL类型的列设置随机数生成器。生成器的选项和功能取决于为其设置的列的SQL类型。有6种不同类型的随机数发生器:
字符–生成一系列随机字符
数值–生成给定范围内的随机数值
Datetime–生成给定范围内的随机日期
图像–生成表示SQL图像类型的随机二进制值,其尺寸在给定范围内
空间–从给定范围为地理和几何SQL类型生成随机值
通用–用于为所有其他SQL类型(xml,GUID,hierarchyId等)生成随机值
1、字符随机发生器
这种类型的随机生成器会创建一系列特定长度的随机字符。
字符随机生成器用于任何字符(char,nvarchar,text)和二进制SQL类型。
通过“长度”值设置一行中的字符数。可在“长度”字段中设置的最大数量取决于给定SQL类型的定义。例如,如果列为nvarchar(25)类型,则每行生成的字符串的最大长度不能超过25。对于nvarchar(100)类型,最大长度为100(如上图所示)。
每行的字符数可以设置为静态值(即100个字符),也可以设置为从最小到最大长度的给定范围内的随机数。要在为每行生成的字符串的静态长度和可变长度之间切换,请使用“可变长度”选项。
最小值不能小于1,最大值不能大于SQL类型中定义的值。
2、数值随机发生器
这种类型的生成器为给定值范围内的每一行创建一个随机数。它用于所有数值(int,float,decimal,smallint等)SQL类型。
在“最小值”和“最大值”字段中可以设置的最小值和最大值取决于为此生成器选择的列的SQL类型。例如,如果所选列为int类型,则根据int SQL类型的定义,最小值为-2,147,483,648,最大值为2,147,483,647。相同的规则适用于所有其他数字SQL类型。
默认值是从0到最接近该类型最大值的四舍五入值。在int类型的示例中,默认最大值为2000000000(如上图所示)。
3、日期时间随机发生器
这种类型的随机数生成器会根据给定的值范围为每一行创建一个随机的日期时间值。它用于datetime SQL类型的所有变体(datetime,date,time和datetimeoffset)。对于日期SQL类型,仅显示开始日期和结束日期字段,对于时间SQL类型,仅显示开始和结束时间字段。
起始值和结束值没有限制。date的默认值从1/1/1753(通常用作SQL datetime类型的最小值)到当前日期(创建项目时)。
4、空间随机发生器
这种类型的随机数生成器会从给定范围为每行创建一个随机的地理/几何值。生成的值是空间中的一个点,生成器无法创建完整的多边形。
默认值对应于这些SQL类型的最小值和最大值,并且生成器允许仅在该范围内设置值,以防止条目与基础SQL类型的逻辑冲突。
5、通用随机发生器
这种类型的生成器用于所有其他SQL类型(xml,GUID,hierarchyId,sqlvariant等),除了上述随机生成器的3种标准设置(种子,唯一,允许为null)外,没有任何其他特定设置。。
6、根据CHECK约束计算默认值
随机生成器能够识别为选择生成器的列设置的简单CHECK约束。在这种情况下,标准默认值将被约束中设置的值覆盖。只要ApexSQL Generate能够正确识别约束,它就可以自动识别所选列的正确设置,并且适用于任何SQL类型。最容易识别的约束是定义允许值范围的约束。例如,如果名为Column1的列为int类型,并且约束说明:
生成器将自动设置其设置以反映从10到100的范围。