sql job proc

if object_id('everyDay') is not null
drop proc everyDay
go
create proc everyDay
as
declare --声明变量
@id varchar(10),
@createtime varchar(50),
@uid varchar(50),
@times varchar(10),
@month_return varchar(20),
@sumreturn varchar(50),
@sumpay varchar(50),
@balance varchar(50),
@leftM varchar(50),
@rightM varchar(50),
@lastaddtime datetime
begin
	--游标查询需要修改的数据
	DECLARE c CURSOR FOR SELECT * FROM dt_return WHERE balance > 0 and times > 0;
	OPEN c;
        --把值传入变量中
	FETCH next FROM c into @id,@createtime,@uid,@month_return,@sumreturn,@sumpay,@balance,@times,@leftM,@rightM,@lastaddtime;
	--当还有数据时
        while @@FETCH_STATUS = 0 
	begin
		--判断
		IF @lastaddtime is null
		BEGIN
			--id=@id表示当前数据
			update dt_return set lastaddtime = GETDATE() where id = @id;
		END
		--根据lastaddtime判断不是今天,并且离上次时间过了15天
		IF DateDiff(dd,@lastaddtime,getdate())!= 0 and DateDiff(dd,@lastaddtime,getdate()) % 15 = 0
		BEGIN
			update dt_users set frozen_money += @balance * 0.75 where id = @uid
		END
		FETCH next FROM c into @id,@createtime,@uid,@month_return,@sumreturn,@sumpay,@balance,@times,@leftM,@rightM,@lastaddtime;
	end
	close c
	DEALLOCATE c
end


exec everyDay --执行存储过程

上面写好了一个存储过程,放在job里就能定时运行

在SQL中的SQL SERVER代理中新建作业,新建步骤并在命令里输入exec everyDay

新建计划设置运行job时间


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值