44

我想收到有关 SQL Server 可用数据生成器的建议。如果发布回复,请提供您认为重要的任何功能。

我从未使用过这样的应用程序,所以我希望接受有关该主题的教育。谢谢你。

(我的目标是在每个表中填充 10,000 多条记录的数据库,以测试应用程序。)

4

9 回答 9

37

我过去使用过数据生成器。可能值得一看。

第三方编辑

如果不注册,则只能生成 100 行。您可以在下面找到今天的界面示例(2016 年 10 月)

数据生成器示例

于 2008-10-01T13:32:40.250 回答
18

这里已经问过类似的问题:在数据库中创建测试数据

Red Gate SQL 数据生成器在该领域做得很好。您可以自定义数据库的每个字段,并使用带有种子的随机数据。甚至可以使用 Regex 表达式创建特定模式。

于 2008-10-01T13:40:04.287 回答
11

我推出了自己的数据生成器,可以生成符合正则表达式的随机数据。它变成了一个学习项目(正在开发中),可在github 上找到。

于 2008-10-24T22:16:34.333 回答
7

为了生成示例数据,我使用简单的 Python 应用程序。

注意事项:

  1. 易于修改和配置。

  2. 一组可重复的数据,可用于性能测试并获得一致的结果。

  3. 遵循所有数据库参照完整性规则和约束。

  4. 真实的数据。

前两个表示您要生成将加载数据的脚本文件。第三个更难。有多种方法可以发现数据库元数据和约束。一起看 3 和 4,您不需要简单的逆向工程——您需要可以控制的东西来产生实际值。

通常,您希望构建自己的实体模型,以便确保范围和键关系正确。

你可以通过三种方式做到这一点。

  1. 生成可以手动加载的 CSV 数据文件。很好的可重复测试数据。

  2. 生成可以运行的 SQL 脚本。很好的可重复数据,也是。

  3. 使用 ODBC 连接将数据直接生成到数据库中。我其实不太喜欢这个,但你可能会。

这是写入 CSV 文件的数据生成器的精简单表版本。

import csv
import random

class SomeEntity( list ):
    titles = ( 'attr1', 'attr2' ) # ... for all columns
    def __init__( self ):
        self.append( random.randrange( 1, 10 ) )
        self.append( random.randrange( 100, 1000 ) )
        # ... for all columns

myData = [ SomeEntity() for i in range(10000) ]
aFile= open( 'tmp.csv', 'wb' )
dest= csv.writer( aFile )
dest.writerow( SomeEntity.titles )   
dest.writerows( myData )
aFile.close()

对于多个实体,您必须计算出基数。您不想生成随机密钥,而是希望从其他实体中进行随机选择。因此,您可能让 ChildEntity 从 ParentEntity 中选择一个随机元素,以确保 FK-PK 关系是正确的。

使用random.choice(someList)random.shuffle(someList)确保参照完整性。

于 2008-10-01T13:51:34.853 回答
3

Visual Studio Team System Database Edition(又名 Data Dude)就是这样做的。

我还没有将它用于数据生成,但有 2 个功能听起来不错:

  1. 为随机数据生成器设置您自己的种子值。这使您可以多次生成相同的随机数据。

  2. 将向导指向“真实”数据库并让它生成看起来像真实数据的东西。

也许这些是其他地方的标准功能?

于 2008-10-01T13:50:09.240 回答
3

我刚刚发现了一个:Spawner

于 2008-12-03T15:09:01.713 回答
1

为此,我使用了一个名为Datatect的工具。

我喜欢这个工具的一些事情:

  1. 使用 ODBC,因此您可以将数据生成到任何 ODBC 数据源中。我已经将它用于 Oracle、SQL 和 MS Access 数据库、平面文件和 Excel 电子表格。
  2. 可通过 VBScript 扩展。您可以在数据生成工作流程的各个部分编写挂钩以扩展该工具的功能。
  3. 有参考意义。填充外键列时,从父表中提取有效键。
于 2008-10-01T14:22:29.367 回答
1

这个是免费的:http ://www.sqldog.com 包含几个功能,如:数据生成器、全文搜索、创建数据库文档、活动数据库连接

于 2010-11-15T19:35:21.670 回答
0

我以前用过这个

http://sqlmanager.net/en/products/mssql/datagenerator

虽然它不是免费的。

Ref 完整性检查非常重要,否则如果没有关联相关数据,您的测试将无法进行。(在大多数情况下)

于 2008-10-01T13:39:07.287 回答