2014-06-30 68 views
0

我正在用c#和SqlServer開發簡單的拍賣應用程序。用一些時間表更新數據庫表

我有一個Auction實體。爲了簡單起見,它具有下列結構:

AuctionId 
ItemId 
StartPrice 
StartDate 
Status 
CurrentPrice 
BidderId 
LastBiddedat 

知道它不是正常形式,這裏沒關係。不是生產代碼。

如果在最近2分鐘內沒有任何出價,我需要更新Auction Status。沒有出價 - 拍賣狀態設置爲Inactive

我可以通過SqlDependency跟蹤c#代碼中的db更改,它可以很好地工作。

現在我需要一個機制來在拍賣時間到時更新分貝。爲了簡單起見,我想在數據庫層上完成它。

它可以通過SQL Agent完成,甚至有一個例子如何做到這一點how to schedule a job for sql query to run daily?

也許您有其他選擇嗎? 只是好奇。

+1

SQL Job將是這個的完美解決方案 –

回答

1

常見的解決方案是輪詢或實施某種調度程序。創建SQL依賴並不會真正起到幫助,因爲這是從數據庫數據更改觸發的。你的觸發是'沒有改變'。

從應用程序輪詢通常是一個壞主意,因爲這會在其他問題中產生不需要的網絡流量。

正如你所提到的,使用內置的SQL代理作業調度程序來運行存儲過程,並更新2分鐘以上和不活動的拍賣狀態是最好的主意。這是數據庫的一部分,因此將創建最小的網絡流量(如果有的話)。它是SQL Server的一部分,因此可以快速而平穩地運行。這也很容易設置。這將是我的建議。

+0

正如我所想的,Sql依賴項僅用於跟蹤更改和更新ui。不用於管理數據庫狀態。 – makambi

+0

@makambi可以自由地將我的回答標記爲回答了您的問題,如果您確實相信!綠色勾號! – sarin