我有一个包含以下列的Shoppping List
表格:
shopID, Product, DateTimeShopped, PaiedOrNot, ListStatus
我的要求是将当前日期时间与 进行比较DateTimeShopped
,如果购物清单在 5 天后仍未付款,则自动将其标记ListStatus
为Blocked
。
如何处理 SQL Server 触发器中的时间问题?
谢谢。
我有一个包含以下列的Shoppping List
表格:
shopID, Product, DateTimeShopped, PaiedOrNot, ListStatus
我的要求是将当前日期时间与 进行比较DateTimeShopped
,如果购物清单在 5 天后仍未付款,则自动将其标记ListStatus
为Blocked
。
如何处理 SQL Server 触发器中的时间问题?
谢谢。
简短的回答。你不能。
长答案。可以从触发器运行多个简单的语句,但是,这不是最好的地方。
另一种选择。我会将数据插入另一个表并从 Sql Agent 运行存储过程以相应地对其进行操作。
创建一个 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
您可能还需要使用游标来逐行处理一组数据。