0

我正在设计一个图书馆管理数据库模式,假设有一个表“借”


id
user_id
book_id
borrow_date
due_date
isExpired
expired_day(图书过期后的天数)
罚款


SQL Trigger 可以实现以下情况吗?
1.比较due_date和Today,如果相同-->发送邮件-->将isExpired标记为true
2.如果isExpired标记为true-->比较today和due_date的差异,
更新expired_day--->更新很好(过期天数 * 5)

4

2 回答 2

2

触发器仅在表或行发生某些事情时触发。它不会连续(或每天)发射。如果表格没有发生任何事情,那么您的触发器将永远不会触发,因此您的检查将无法完成。

因此,当您第一次将记录插入行时,您描述的触发器将起作用,但是没有自动方法在到期日之后触发触发器以检查到期和罚款。

您很可能需要设置一个包含您的代码的存储过程,并找到一种按计划运行它的方法。

以下链接介绍了如何进行设置: SQL server 上存储过程的计划运行

于 2012-10-09T01:51:25.863 回答
0

由于您想每天检查图书馆的所有记录并希望它们相应地更新,因此最好制作一个每日作业并安排一个代理并设置特定时间,以便每天自动执行该每日作业。
请注意:您应该记住选择您认为您的应用程序在一天中最少使用的时间。

创建代理: http: //msdn.microsoft.com/en-us/library/ms181153 (v=sql.105).aspx

于 2012-10-09T02:31:48.490 回答