使用一些计划更新db表

时间:2014-06-30 13:58:35

标签: c# sql sql-server auto-update

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

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

AuctionId
ItemId
StartPrice
StartDate
Status
CurrentPrice
BidderId
LastBiddedat

知道它不是正常形式,这里没关系。不是生产代码。

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

我可以通过SqlDependency跟踪c#代码中的数据库更改,但效果非常好。

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

可以通过SQL Agent完成,甚至还有一个示例如何how to schedule a job for sql query to run daily?

也许你还有其他选择? 只是好奇。

1 个答案:

答案 0 :(得分:1)

常见的解决方案是轮询或实现某种调度程序。创建SQL依赖项实际上并没有帮助,因为这是从数据库数据更改触发的。你的触发是“没有变化”。

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

正如您所提到的那样,使用内置的SQL代理作业调度程序来运行存储过程并更新2分钟以上且不活动的拍卖的状态是最好的选择。这是数据库的一部分,因此将创建最小的网络流量(如果有的话)。它是SQL Server的一部分,因此可以快速顺畅地运行。它也很容易设置。这是我的建议。