Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何用随机数据填充数据库的所有表?_Sql Server_Database_Sql Server 2008_Sql Server 2008 R2_Relational Database - Fatal编程技术网

Sql server 如何用随机数据填充数据库的所有表?

Sql server 如何用随机数据填充数据库的所有表?,sql-server,database,sql-server-2008,sql-server-2008-r2,relational-database,Sql Server,Database,Sql Server 2008,Sql Server 2008 R2,Relational Database,有这样的软件吗?数据本身是否有意义并不重要。我只是担心田地会变得拥挤。基本上,它将读取表定义并相应地生成一些数据。如果它询问每个表要插入多少行,默认值是留空还是填充,如何将varchars处理为完整范围,或者最多处理给定的指定字符数,那也很好。理想情况下是免费的:但商业产品建议也非常受欢迎。 谢谢大家。嘿,SQL数据生成器提供了真实的测试数据,您可以从下面的网站下载 如本文所示,尝试使用VisualStudio进行此操作 有大量用于SQL Server测试数据生成的工具。 因此,您不必通过构建自

有这样的软件吗?数据本身是否有意义并不重要。我只是担心田地会变得拥挤。基本上,它将读取表定义并相应地生成一些数据。如果它询问每个表要插入多少行,默认值是留空还是填充,如何将varchars处理为完整范围,或者最多处理给定的指定字符数,那也很好。理想情况下是免费的:但商业产品建议也非常受欢迎。 谢谢大家。

嘿,SQL数据生成器提供了真实的测试数据,您可以从下面的网站下载

如本文所示,尝试使用VisualStudio进行此操作


有大量用于SQL Server测试数据生成的工具。 因此,您不必通过构建自己的逻辑来手动完成这项工作。 请检查位于

的测试数据生成器部分,对于mysql数据库,您可以使用filldb.info


它会自动生成数据并用这些虚拟数据填充数据库表

我发现仍然没有被选为最佳答案。除了本线程中已经提到的解决方案之外,我可以建议使用,它能够使用各种数据源和各种数据生成器快速生成数百万行


它提供了一个全功能的免费试用版,因此您可以下载并测试它是否能完成您的工作。

以防有人正在寻找一种无需额外软件即可完成此任务的简单方法

我们只需要一个返回随机数的函数:

-- Create the RANDBETWEEN function
-- Usage: SELECT dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID())))
CREATE FUNCTION dbo.RANDBETWEEN(@minval TINYINT, @maxval TINYINT, @random NUMERIC(18,10))
RETURNS TINYINT
AS
BEGIN
  RETURN (SELECT CAST(((@maxval + 1) - @minval) * @random + @minval AS TINYINT))
END
GO
然后可以运行如下查询:

-- Insert 1 million records into the Person table
INSERT INTO Person (FirstName,LastName,CityId)
SELECT TOP 1000000
    CASE
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 0 THEN 'John'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 1 THEN 'Jack'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 2 THEN 'Bill'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 3 THEN 'Mary'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 4 THEN 'Kate'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 5 THEN 'Matt'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 6 THEN 'Rachel'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 7 THEN 'Tom'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 8 THEN 'Ann'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 9 THEN 'Andrew'
    ELSE 'Bob' END AS FirstName,
    CASE
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 0 THEN 'Smith'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 1 THEN 'Morgan'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 2 THEN 'Simpson'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 3 THEN 'Walker'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 4 THEN 'Bauer'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 5 THEN 'Taylor'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 6 THEN 'Morris'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 7 THEN 'Elliot'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 8 THEN 'White'
        WHEN dbo.RANDBETWEEN(0,9,RAND(CHECKSUM(NEWID()))) = 9 THEN 'Davis'
    ELSE 'Brown' END AS LastName,
    dbo.RANDBETWEEN(1,15,RAND(CHECKSUM(NEWID()))) as CityId
FROM sys.all_objects a
CROSS JOIN sys.all_objects b
GO
结果:

相应地调整查询以匹配表/列名。

我创建了一个
此项目允许您使用随机数据填充表。它有一些问题,所以我正在努力解决它。

我通常使用的非常简单的SQL:

创建表格fillTbl msg nvarchar255 插入到fillTbl中,从sys.sysmessages中选择top 4285描述,其中msglangid=1033-~1 Mo GO 100-要添加的生产任务单编号 exec sp_spaceused'fillTbl'-表中的空格 exec sp_spaceused-数据库中的空间 -drop table fillTbl-重置添加的空间
你想查询这个吗?不想。我只想点击一个神奇的按钮,所有的表格都会被数据填充。你想要随机填充的数据吗?没错。我不在乎数据的质量或意义。可能的重复