日期:2014-05-18 浏览次数:20818 次
----创建大批量测试数据 主从表 --主表学生表 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
------解决方案--------------------