日期:2014-05-18 浏览次数:20927 次
----创建大批量测试数据 主从表
--主表学生表
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进行关联呢,从表应该如何插入
请各位朋友多多指教。!
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分钟内可搞定.
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
------解决方案--------------------