SQL循环插入数据

我要对某个表插入每月数据,怎么用存储过程去循环插入而不是手动去改

sqlserver数据库

image.png

唱跳rap全能选手 发布于 2021-3-2 15:35
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
熊猫头Lv6初级互助
发布于2021-3-2 17:30

declare @date1 date

declare @date2 date

declare @ny varchar(10)

declare @count int

set @count=1

SET @ny = '2018-04'

set @date1='2018-04-01'

set @date2=CONVERT(varchar(100), dateadd(dd,-day(@date1),dateadd(m,1,@date1)), 23)

while @count<34

BEGIN

 

--执行sql

set @date1=dateadd(mm,1,@date1)

set @date2=CONVERT(varchar(100),dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,@date1)+1, 0)),23)

SET @ny =left(@date1,7) 

set @count=@count+1

END

最佳回答
0
烟尘Lv6高级互助
发布于2021-3-2 16:06

没太明白你要实现什么

自动同步数据?

录入一行数据然后根据规则自动生成一个月的数据?

最佳回答
0
用户E2976026Lv5见习互助
发布于2021-3-2 16:12(编辑于 2021-3-2 16:13)

用游标

----SQL使用游标来进行循环引用

1.CREATE  TABLE  #TABLE(N VARCHAR(10),T VARCHAR(10));--创建一个虚拟表

2.INSERT #TABLE  VALUES('九月','2019-09-30'),('十月','2019-10-30'),('十一月','2019-11-30');--往虚拟表中插入数据

3.DECLARE @N VARCHAR(10),@T VARCHAR(10);--定义全局变量

4.DECLARE  KR_CURSOR  CURSOR  FOR  SELECT  N,T  FROM  #TABLE  ORDER  BY  T;--声明游标,并且使用游标遍历虚拟表

5.OPEN   KR_CURSOR;--打开游标

6.FETCH  NEXT  FROM  KR_CURSOR  INTO  @N,@T;--取游标遍历的数据定义给变量(第一行)

7.WHILE (@@FFTCH_STATUS==0);--判断是否取数成功,如果成功就开启循环,失败则结束

8.INSERT INTO 表1  SELECT @N 日期  FROM 表2  WHILE 日期=@T;--取表2的数据给到表1

9.CLOSE  KR_CURSOR;--关闭游标

10.DEALLOCATE KR_CURSOR;--删除游标

#》》同时取多个时间点的库存数据

最佳回答
0
小县城Lv4见习互助
发布于2021-3-2 16:33

存储过程中定义好。然后数据库里做个定时任务。设定每月具体执行日期。周期等信息

  • 5关注人数
  • 724浏览人数
  • 最后回答于:2021-3-2 17:30
    请选择关闭问题的原因
    确定 取消
    返回顶部