当我们想要很多数据量测试的时候,往往无力去添加大部分数据。今天我在这边就给大家介绍一个关于利随机产生大批量数据的技巧。
- 首先创建表
1 IF NOT EXISTS(SELECT 1 FROM SysObjects WHERE ID = OBJECT_ID(N'骨牌存储箱')) 2 CREATE TABLE 骨牌存储箱 3 ( 4 骨牌编号 INT IDENTITY(1,1) NOT NULL, 5 骨牌颜色 VARCHAR(10) NOT NULL, 6 骨牌类型 VARCHAR(10) NOT NULL, 7 骨牌价格 NUMERIC(10,2) NOT NULL, 8 骨牌重量 NUMERIC(10,2) NOT NULL, 9 生产日期 DATETIME NOT NULL, 10 ) 11 GO
- 然后利用随机产生大量数据
1 INSERT INTO 骨牌存储箱(骨牌颜色,骨牌类型,骨牌价格,骨牌重量,生产日期) 2 VALUES 3 (SUBSTRING('红橙黄绿青蓝紫',CONVERT(INT,CEILING(RAND()*7)),1) -- 七种颜色随机取一种 4 ,'石英' -- 材质,因为价格相关,无法随机 5 ,1.30 -- 根据骨牌类型定价格,石英为1.30元 6 ,CONVERT(NUMERIC(10,2),RAND()*1) + 10 -- 重量在10.0~10.9随机 7 ,DATEADD(DAY,FLOOR(RAND()* 365),'2015-01-01') -- 生产日期从2015-01-01日期随机一天 8 ) 9 GO 1000 10 11 INSERT INTO 骨牌存储箱(骨牌颜色,骨牌类型,骨牌价格,骨牌重量,生产日期) 12 VALUES 13 (SUBSTRING('红橙黄绿青蓝紫',CONVERT(INT,CEILING(RAND()*7)),1) -- 七种颜色随机取一种 14 ,'木材' -- 材质,因为价格相关,无法随机 15 ,2.20 -- 根据骨牌类型定价格,木材为2.20元 16 ,CONVERT(NUMERIC(10,2),RAND()*1) + 3 -- 重量在3.0~3.9随机 17 ,DATEADD(DAY,FLOOR(RAND()* 365),'2015-01-01') -- 生产日期从2015-01-01日期随机一天 18 ) 19 GO 1000 20 21 INSERT INTO 骨牌存储箱(骨牌颜色,骨牌类型,骨牌价格,骨牌重量,生产日期) 22 VALUES 23 (SUBSTRING('白黄黑',CONVERT(INT,CEILING(RAND()*3)),1) -- 三种颜色随机取一种 24 ,'骨头' -- 材质,因为价格相关,无法随机 25 ,199.00 -- 根据骨牌类型定价格,石英为1.30元 26 ,CONVERT(NUMERIC(10,2),RAND()*1) + 8 -- 重量在8.0~8.9随机 27 ,DATEADD(DAY,FLOOR(RAND()* 365),'2015-01-01') -- 生产日期从2015-01-01日期随机一天 28 ) 29 GO 1000 30 31 INSERT INTO 骨牌存储箱(骨牌颜色,骨牌类型,骨牌价格,骨牌重量,生产日期) 32 VALUES 33 (SUBSTRING('白黄黑',CONVERT(INT,CEILING(RAND()*3)),1) -- 三种颜色随机取一种 34 ,'塑料' -- 材质,因为价格相关,无法随机 35 ,1.00 -- 根据骨牌类型定价格,塑料为1.00元 36 ,CONVERT(NUMERIC(10,2),RAND()*1) + 3 -- 重量在3.0~3.9随机 37 ,DATEADD(DAY,FLOOR(RAND()* 365),'2015-01-01') -- 生产日期从2015-01-01日期随机一天 38 ) 39 GO 1000 40 41 INSERT INTO 骨牌存储箱(骨牌颜色,骨牌类型,骨牌价格,骨牌重量,生产日期) 42 VALUES 43 (SUBSTRING('红橙黄绿青蓝紫',CONVERT(INT,CEILING(RAND()*7)),1) -- 七种颜色随机取一种 44 ,'石英' -- 材质,因为价格相关,无法随机 45 ,1.30 -- 根据骨牌类型定价格,石英为1.30元 46 ,CONVERT(NUMERIC(10,2),RAND()*1) + 10 -- 重量在10.0~10.9随机 47 ,DATEADD(DAY,FLOOR(RAND()* 365),'2015-01-01') -- 生产日期从2015-01-01日期随机一天 48 ) 49 GO 1000 50 51 INSERT INTO 骨牌存储箱(骨牌颜色,骨牌类型,骨牌价格,骨牌重量,生产日期) 52 VALUES 53 (SUBSTRING('红橙黄绿青蓝紫',CONVERT(INT,CEILING(RAND()*7)),1) -- 七种颜色随机取一种 54 ,'木材' -- 材质,因为价格相关,无法随机 55 ,2.20 -- 根据骨牌类型定价格,石英为1.30元 56 ,CONVERT(NUMERIC(10,2),RAND()*1) + 10 -- 重量在10.0~10.9随机 57 ,DATEADD(DAY,FLOOR(RAND()* 365),'2015-01-01') -- 生产日期从2015-01-01日期随机一天 58 GO 1000
- 然后得出结果
- 2016-04-05
1 CREATE TABLE 客户 2 ( 3 客户编号 INT IDENTITY(1,1) NOT NULL, 4 客户姓名 VARCHAR(10) NOT NULL, 5 客户性别 CHAR(2) NOT NULL, 6 客户地址 VARCHAR(10) NOT NULL, 7 客户生日 DATE NOT NULL, 8 客户电话 VARCHAR(12) NOT NULL, 9 ) 10 GO 11 INSERT INTO 客户(客户姓名,客户性别,客户地址,客户生日,客户电话) 12 SELECT '张三','男','湖南',CONVERT(DATE,'1986-10-11'),'13589888862' 13 UNION ALL 14 SELECT '李四','男','湖北',CONVERT(DATE,'1987-05-26'),'13085628876' 15 UNION ALL 16 SELECT '王二','男','南京',CONVERT(DATE,'1985-06-15'),'18085985379' 17 UNION ALL 18 SELECT '小明','男','北京',CONVERT(DATE,'1990-07-24'),'13148668213'