日期:2014-05-18  浏览次数:20818 次

主从表如何快速生成大批量测试数据———300万条
SQL code

----创建大批量测试数据 主从表
 
--主表学生表
IF(OBJECT_ID('Student') IS NOT NULL)
  DROP TABLE Student
CREATE TABLE Student
(
StudentID  UNIQUEIDENTIFIER PRIMARY KEY,
name VARCHAR(100),
age INT,
address VARCHAR(100)
) 

--从表 分数表
IF(OBJECT_ID('Grade') IS NOT NULL)
  DROP TABLE Grade
CREATE TABLE Grade
(
ID  UNIQUEIDENTIFIER PRIMARY KEY,
StudentID UNIQUEIDENTIFIER,
SUBJECT VARCHAR(10),
score INT
) 

--测试数据
DECLARE @guidid UNIQUEIDENTIFIER
SET @guidid=NEWID()
INSERT Student VALUES (@guidid,'张三',24,'湖北襄樊')
INSERT Grade VALUES (newid(),@guidid,'数学',123)

SELECT * FROM Student s 
  LEFT JOIN Grade g ON s.StudentID=g.StudentID


方法一 循环:
   DECLARE @i INT,@guid UNIQUEIDENTIFIER
    SELECT @i=1000000
    WHILE(@i>0)
        BEGIN
            --插入操作
            
             SET @i=@i-1
        END
这个速度太慢。

方法二 insert select:
   INSERT student
   SELECT * FROM student   

   但是 从表如何和主表的 guidid进行关联呢,从表应该如何插入
   
 请各位朋友多多指教。!






------解决方案--------------------
SQL code

DECLARE @i INT,@guid UNIQUEIDENTIFIER
    SELECT @i=1000000
    WHILE(@i>0)
        BEGIN
             insert tb 
               select * from tb
               union all select * from tb
            
             SET @i=@i-1
        END
--表按 1^2*@i 增长

------解决方案--------------------
100万笔,大概20分钟内可搞定.
SQL code

    set nocount on
    DECLARE @i INT,@guid UNIQUEIDENTIFIER
    SELECT @i=1000000
    WHILE(@i>0)
        BEGIN
            --插入操作
             SET @i=@i-1
        END
    set nocount off

------解决方案--------------------
推荐给你的工具,叫 数据工厂。
参考:
http://wenku.baidu.com/view/9f079ed376eeaeaad1f330ff.html
------解决方案--------------------
探讨

推荐给你的工具,叫 数据工厂。
参考:
http://wenku.baidu.com/view/9f079ed376eeaeaad1f330ff.html