SQL Server时间触发器

2025-04-02 12:38:43
推荐回答(2个)
回答1:

这个应该问题不大,插入记录的时候,order_time有值后,order_out_time的值为dateadd(day,3,order_time)即可。这里不需要触发器。
第二问题其实是两个问题,一是要写一个遍历删除的程序,二是写一个触发器,当删除一个orders记录时,自动去增加表book中关联book_id的数量。

回答2:

第一个问题按照楼上说的做
第二个问题就写个存储过程 然後 用排程,每天规定的时间执行这个存储过程就好了

2.create proc test
as
select book_id,count(*) as 数量 into #a from orders where convert(varchar(12), dateadd(day,3,order_time),111)=convert(varchar(12),getdate(),111) group by book_id

delete from orders where convert(varchar(12), dateadd(day,3,order_time),111)=convert(varchar(12),getdate(),111)

update t1
set t1.num=t1.num+t2.数量
from book t1, #a t2
where t1.book_id=t2.book_id