永发信息网

SQL Server时间触发器

答案:2  悬赏:0  手机版
解决时间 2021-02-22 15:07
我最近在写一个图书馆借书系统,有一个表叫orders,里面存放读者预约的图书,有一个字段叫“order_time”是smalldatetime类型的,还有一个字段叫“order_out_time””也是smalldatetime类型的表示预约到期时间,现在是想这样,当插入记录时只插入order_time,而“order_out_time”不用管,因为预约到期时间就是在order_time”的基础上加上三天,所以我想让数据库实现,而不是编程,这是第一个问题。。
第二个问题,当SQL Server检测到order_out_time已经到了,也就是说该预约到期了,能够自动删除本条记录,同时修改"book"表中的“num”字段(int类型),让其自增一,表示该本书的可借阅量增加了一。想求助一下各位大神们,因为不太会数据库设计。如果实现加倍悬赏,说到做到!谢谢。

对了,orders表中有一个叫book_id的外键和book表(book_id)关联。
最佳答案
第一个问题按照楼上说的做
第二个问题就写个存储过程 然後 用排程,每天规定的时间执行这个存储过程就好了

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
全部回答
create trigger insertedata on test01 for insert as begin declare @id int set @id=(select id from inserted) insert into test02(id,列名2) values(@id,'值2') end
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
白石达我想知道这个在什么地方
嘉立城房地产公司(安宁百花西路分店)地址有知
给电脑换了新的鼠标和键盘后,电脑就感应不到
地质构造学说共有几种?具体是什么
黄泥湖村我想知道这个在什么地方
金角大王用什么扇子扇出烈火
左脚脚趾缝很痒,会不会是由于真菌感染导致的
为什么我大学生还是喜欢初中和高中女生,对同
lg pd239 可以打印电脑上的照片吗
胡岗路在哪里啊,我有事要去这个地方
如图所示钢筋混凝土高层建筑的剪力墙,()对抗
吃什么药能长头发
鱼缸里的水草能活多久
02年红旗488发动机有油有火就是不着车怎么回
临河区计划生育技术服务部我想知道这个在什么
推荐资讯
和歌曲《哭砂》同曲的歌,粤语的
偶然遇见用英语怎么说
水命的字有哪些
我家电脑主板型号是gigabyte G31M-ES2C (Inte
电影初学者里的狗是什么品种
网吧几点钟关门?
剑网3重制版二测PVE冰心技能改动有哪些
怎样才能把声音变苏?
2019年新编基础训练七年级生物学上册北师大版
朋友发来微信一张照片,金鱼在游动,请问这种
我在西单大悦城5楼苹果店,我买iphone4黑色的
我看见工地里有很多这些符号,是干嘛的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?