我有一个数据库表,每行代表一个任务。该行还包含一个字段 [Completed],如果任务已成功完成,则该字段应为 true,否则每隔一段时间为 false。
让我们假设任务由以下函数表示:
bool Task(int TaskId);
它在任务成功时返回 true,在失败时返回 false。
根据任务的结果更新任务表的已完成字段的最佳方法是什么?
A 曾想过要接近:
一个。
BEGIN TRANSACTION
UPDATE TASKS SET Completed = 1 WHERE TaskId=@SpecificTask
if (Task(SpecificTask))
COMMIT TRANSACTION
else
ROLLBACK TRANSACTION
B.
if (Task(SpecificTask))
UPDATE TASKS SET Completed = 1 WHERE TaskId=@SpecificTask
如何避免任务成功但无法完成数据库更新?