我举例说明问题>> 我有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.
有一些例子??
谢谢大家!! :)
答案 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天的所有贷款。
您需要做的就是指定作业运行的频率,并且无需在表格中创建任何触发器或约束即可完成此任务。