我有一个Shoppping List
表,其中包含以下列:
shopID, Product, DateTimeShopped, PaiedOrNot, ListStatus
我的要求是将当前日期时间与DateTimeShopped
进行比较,如果购物清单在5天后仍未付款,则会自动将ListStatus
标记为Blocked
。
如何在SQL Server的触发器中处理时间问题?
感谢。
答案 0 :(得分:4)
简短回答。你不能。
答案很长。可以从触发器运行多个简单语句,但是,这不是最适合它的地方。
另一个选项。我将数据插入另一个表并从Sql代理运行存储过程以相应地操作它。
答案 1 :(得分:1)
创建SP ShoppingListSP
declare @current datetime
set @current = (select GETDATE() )
if ( datediff(@DateTimeShopped,@current ) > 5)
begin
update [Shopping List] set ListStatus = 'Blocked' where id=123123
end
然后创建一个SQL作业,该作业在后台每小时左右运行一次。
exec ShoppingListSP
您可能还需要使用游标来逐行处理一组数据。