SQL Server使用循环语句创建模拟数据

SQL Server使用循环语句创建模拟数据

实例1、使用循环语句创建模拟数据

1.1 创建学生信息表

CREATE TABLE StuInfo
(
	StuID INT,            --学生编号
	StuName NVARCHAR(20),  --学生姓名
	Sex NVARCHAR(20)       --学生性别
)

1.2 给学生信息表创建模拟数据

BEGIN
	DECLARE @DataCount INT = 100;     --数据总数
	DECLARE @CurrentCount INT =1;     --当前条数
	DECLARE @Sex NVARCHAR(20);         --学生性别
	
	WHILE @CurrentCount<=@DataCount
	BEGIN
		--先删除旧数据
		DELETE StuInfo WHERE StuID = @CurrentCount;

		--要求:每隔第5条数据时,学生性别为“女”,其余数据为“男”
		IF (@CurrentCount%5=0)
		BEGIN
			SET @Sex = '女';
		END
		ELSE 
		BEGIN
			SET @Sex = '男';
		END;

		--执行新增操作
		INSERT StuInfo VALUES(@CurrentCount,'学生'+ CONVERT(VARCHAR,@CurrentCount),@Sex);

		--当前条数加一
		SET @CurrentCount = @CurrentCount +1;
	END;
END;

实例2:使用循环语句创建带有期间字段的模拟数据

2.1 创建学生成绩表

CREATE TABLE StuScore
(
	Period NVARCHAR(20),    --期间
	StuName NVARCHAR(20),   --学生名称
	Subject NVARCHAR(20),   --科目名称
	Score INT               --考试成绩
)

2.2 给学生成绩表创建模拟数据

BEGIN 
	DECLARE @BeginDate DATETIME = '2018-10-01';  --开始日期
	DECLARE @EndDate DATETIME = '2018-10-31';    --结束日期
	DECLARE @CurrentDate DATETIME = @BeginDate;  --当前日期
	DECLARE @Period NVARCHAR(20);                --当前期间  

	WHILE @CurrentDate<=@EndDate
	BEGIN

		--期间值
		SET @Period = CONVERT(VARCHAR(10),@CurrentDate,120);

		--删除该期间下的旧数据
		DELETE StuScore WHERE Period = @Period;

		--插入模拟数据
		INSERT INTO StuScore VALUES(@Period,'张三','语文',CAST(CEILING(RAND() * 100) AS INT));
		INSERT INTO StuScore VALUES(@Period,'张三','数学',CAST(CEILING(RAND() * 100) AS INT));
		INSERT INTO StuScore VALUES(@Period,'李四','语文',CAST(CEILING(RAND() * 100) AS INT));
		INSERT INTO StuScore VALUES(@Period,'李四','数学',CAST(CEILING(RAND() * 100) AS INT));
		INSERT INTO StuScore VALUES(@Period,'王五','语文',CAST(CEILING(RAND() * 100) AS INT));
		INSERT INTO StuScore VALUES(@Period,'王五','数学',CAST(CEILING(RAND() * 100) AS INT));

		--当前日期加一天
		SET @CurrentDate = DATEADD(DAY,1,@CurrentDate);
	END;
END;

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pan_junbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值