根据日期时间自动添加新的寄存器

时间:2014-08-11 14:51:18

标签: c# sql asp.net asp.net-mvc

我举例说明问题>> 我有2张桌子“LOAN”和“FINE” LOAN的属性是:IDLoan(INT),IDUser(INT),IDBook(INT),日期(DATETIME)。 FINE的属性是:IDFine(INT),IDLoan(INT),Date(DATETIME)。 我希望我的程序在表“FINE”中自动创建新的寄存器,如果它有任何已过期的贷款数据(仅贷款3天)。

1)...我怎样才能自动增加LOAN的DATE?... 我是否需要不断更新此属性?

2)我知道,我需要为条件>>

执行此操作
    var LOANS = from loan in db.Loan select loan;
    LOANS = LOANS.Where(s=>s.Date.Contains(DATE.NOW));
    IF(LOANS!=NULL)
    and..... Create REGISTER IN TABLE FINE.....etc.

有一些例子??

谢谢大家!! :)

1 个答案:

答案 0 :(得分:1)

我认为你需要的是创建一个每隔x个时间运行一次的SQL Job并检查LOAN表中是否有过期记录,如果还没有创建它们,则在FINE表中创建一个记录。 / p>

无需更新LOAN表中的任何内容,只需创建一个Job将运行的存储过程,在存储过程中可以放置类似

的内容。
INSERT INTO FINE (IDLoan, Date)
SELECT IDLoan, GETDATE()
FROM LOAN L
LEFT JOIN FINE F ON F.IDLoan = L.IDLoan
WHERE (L.Date >= DATEADD(DD,-3,GETDATE()) AND F.IDLoan IS NULL

显然,这会根据您的业务规则而有所不同,在这种情况下,查询会将记录插入到FINE表中,以查找截至目前尚未添加的日期超过3天的所有贷款。

您需要做的就是指定作业运行的频率,并且无需在表格中创建任何触发器或约束即可完成此任务。