关于MSsql的问题

来源:百度知道 编辑:UC知道 时间:2024/09/27 19:20:34
我想问一个简单的问题,我有一张表名为T_BorrowInfo用来存取借阅图书的信息,里面有个字段为借阅的时间,我想让触发器自动触发时间,比如当借阅的时间超过30天未归还的自动添加到T_ExpiryBook(逾期表)里,请问要怎么实现
写点代码给我
二楼说的有道理,因为T_ExpiryBook表不是靠更新它自己触发的,而是靠时间自动触发。谁能说详细点,写点代码给我。

咋要弄的这么复杂呢,这里完全可以用视图解决问题嘛,干嘛一定要用一个逾期表。请看视图

create view book_data
as
select * from T_BorrowInfo where datediff(day,beg_date,getdate())>30

假定字段beg_date为借书日期
*可以换成你需要显示的字段,
以后你要看那些事过期的信息就可以这样啦
select * from book_data

CREATE TRIGGER djh_expbook_update ON [T_ExpiryBook]
FOR UPDATE
AS

declare @tiemcode int
select @tiemcode = datediff(day,时间字段,getdate()) from T_BorrowInfo
if @tiemcode > 30 then
insert to T_ExpiryBook *借阅图书字段*

楼上的方法并不能自动触发,你应该设置一个线程,每隔一天刷新一次,判断是否逾期

这样的问题最好是在客户端程序里实现,只需要每天判断一下借阅时间就可以了,如果超过30天,就用SQL语句把信息写入逾期表,并不需要什么触发器。
如果非要在数据库端实现,那只能在数据库里做一个任务,内容是执行一条SQL语句,每天执行一次。