1

我有一个包含以下列的Shoppping List表格:

shopID, Product, DateTimeShopped, PaiedOrNot, ListStatus

我的要求是将当前日期时间与 进行比较DateTimeShopped,如果购物清单在 5 天后仍未付款,则自动将其标记ListStatusBlocked

如何处理 SQL Server 触发器中的时间问题?

谢谢。

4

2 回答 2

4

简短的回答。你不能。

长答案。可以从触发器运行多个简单的语句,但是,这不是最好的地方。

另一种选择。我会将数据插入另一个表并从 Sql Agent 运行存储过程以相应地对其进行操作。

于 2012-11-20T17:19:51.483 回答
1

创建一个 SPShoppingListSP

declare @current datetime    
set @current = (select GETDATE() )

if ( datediff(@DateTimeShopped,@current ) > 5)
begin
    update [Shopping List] set ListStatus = 'Blocked' where id=123123
end

然后创建一个 SQL 作业,在后台每隔一小时左右运行一次这个 SP。

exec ShoppingListSP

您可能还需要使用游标来逐行处理一组数据。

于 2012-11-20T18:26:32.350 回答