更新db表与一些时间表

本文关键字:时间表 db 更新 | 更新日期: 2023-09-27 18:11:01

我正在使用c#和SqlServer开发简单的拍卖应用程序。

我有一个Auction实体。为简单起见,它的结构如下:

AuctionId
ItemId
StartPrice
StartDate
Status
CurrentPrice
BidderId
LastBiddedat

A知道它不是正规形式,在这里没有关系。不是生产代码。

我需要的是更新Auction Status,如果没有任何出价在过去的2分钟。无出价-拍卖状态设置为Inactive

我可以通过SqlDependency跟踪c#代码中的db变化,它工作得很好。

现在我需要一个机制来更新数据库时,拍卖时间到了。为了简单起见,我想在数据库层上这样做。

它可以通过SQL Agent来完成,甚至有一个例子如何做到这一点,如何为sql查询安排一个每天运行的作业?.

也许你还有别的选择?只是好奇。

更新db表与一些时间表

常见的解决方案是轮询或实现某种调度器。创建SQL依赖并没有真正的帮助,因为这是由数据库数据更改触发的。你的触发器是"没有变化"。

从应用程序轮询通常是一个坏主意,因为这会在其他问题中产生不必要的网络流量。

正如您提到的,使用内置的SQL Agent Job Scheduler来运行存储过程并更新已有2分钟以上且不活跃的拍卖的状态是最好的主意。这是数据库的一部分,因此将创建最小的网络流量(如果有的话)。它是SQL Server的一部分,因此被设计为快速平稳地运行。它也很容易设置。这是我的建议。