我正在用会员表单创建图书馆管理应用程序。自动更新状态列
会员类型有:
- 半年度
- 每年
- 赞助人(15分钟)
- 终身会员
现在我在SQL Server中设计了一个表2008组成:
- 成员Id
- 名称
- 加入日期
- 截止日期
- 状态
状态由要么M
会员或E
过期籍。
现在我想让这个任务自动发生。
例如,如果成员的到期日期是昨天,那么它应该自动将状态更改为E
。
我该怎么做?
我正在用会员表单创建图书馆管理应用程序。自动更新状态列
会员类型有:
现在我在SQL Server中设计了一个表2008组成:
状态由要么M
会员或E
过期籍。
现在我想让这个任务自动发生。
例如,如果成员的到期日期是昨天,那么它应该自动将状态更改为E
。
我该怎么做?
使用过期日期NULL
作为您的生活会员会员。然后,create a SQL Server Agent job揭开序幕下面的语句和运行,每15分钟(或5):
UPDATE
Membership
SET
Status = 'E'
WHERE
Status = 'M' AND ExpirationDate < getdate()
AND ExpirationDate IS NOT NULL
你可以create a SQL Job和schedule它每天晚上运行,以更新状态标志。这是一个overview让你开始吧。
评论:我不确定您是否将您的数据库视为具有此要求的独立数据源。它看起来更像是更新此状态标志的商业案例。如果稍后更新过期日期,会发生什么情况?您还必须更新状态标志。您可能希望您的应用程序解释过期日期。
感谢, -Tom
感谢您的回复。 其实我没有安装Sql server代理。 你能告诉我SQL SERVER AGENT可以作为FreeWare的链接吗? 请帮我一把! – sheetal 2009-07-08 04:55:48
如何使用计算列?
在表设计器内部选择您的状态列,转到列属性并选择节点“计算列指定”。在此输入公式:
CASE WHEN ExpirationDate IS NOT NULL AND ExpirationDate < GETDATE() THEN 'E' ELSE 'M' END
对此的唯一负面影响是,它无法被索引。
如果您正在将记录加载到对象中,为什么不使用对象的属性来向您显示“member”/“expired”?
这种自动操作并不适合持久性数据存储。如果您真的需要,可以使用Greco建议的计算列,但正确地指出这可能会演变为性能问题。
不需要额外的感叹号。人们正在阅读这些问题,希望能帮助你:) – Jared 2009-07-08 04:12:34
你能否更新你的问题标题以避免模棱两可? – Jared 2009-07-08 04:15:00