sql server2005触发器,定时任务

2025年03月13日 03:56
有2个网友回答
网友(1):

create table order (
id identity(80000,1) , ---自增长ID,初始ID为80000
order_time datetime not null, --订单日期
order_day int default 1 not null, --允许借阅天数
over_day int default 0 not null --逾期天数(超出借阅天数的天数)
)

insert into order (order_time,order_day) select '2012-01-01 17:07:56',3
insert into order (order_time,order_day) select '2012-01-01 17:07:56',7
insert into order (order_time,order_day) select '2012-01-02 17:07:56',3
insert into order (order_time,order_day) select '2012-01-02 17:07:56',7
insert into order (order_time,order_day) select '2012-01-03 17:07:56',4
insert into order (order_time,order_day) select '2012-01-03 17:07:56',3

-- ==============================================
-- 数据量少的话,最简便的方法是用存储过程实现
-- 用此存储过程的条件是:需要每天执行一次此存储过程
-- ==============================================
if exists (select * from sysobjects where name='proc_update_oder_over_day')
begin
print 'proc proc_update_oder_over_day 已存在,正在删除,并新建...'
drop proc proc_update_oder_over_day
end
go

create proc proc_update_oder_over_day
as
begin

update order
set over_day = datediff(dd,getdate(),order_time) + 1 - order_day

end
go

print 'proc proc_update_oder_over_day done!'
go

网友(2):

建议把应归还日期存为一个日期型字段,那么借阅天数和逾期天数都可以通过日期计算得来,就不必每日更新了.