我在SQL Server中有一个数据库表,如下所示
ID | Name | ExpireTime | CountLeft
1 test 11/11/2014 2:30 5
我想在ExpireTime = currenttime
时更新countLeft = 0我应该在SQL Server后面的代码中执行此操作吗?
答案 0 :(得分:2)
此类操作不适用于数据库。触发器是基于事件的,而不是基于时间的。虽然它可能,有点,sorta可以通过经常轮询表的SQL代理作业来完成,该进程必须每秒钟点击才能使其工作,这可能会导致拖拽系统和争用表
然而,有些技术适用于此类事物。您应该查看一个缓存服务器,该服务器允许查找值,该值可以指定到期日期。根据应用程序的设计/需求,您可以在将数据写入缓存服务器的同时将条目写入数据库。
退房:
现在,如果你真的,真的,真的,真的需要从SQL Server处理这个问题,你必须:
答案 1 :(得分:0)
从技术上讲,您可以使用Service Broker对话计时器。虽然我怀疑这将是一个完全错误的设计决策的良好实现。