如何最好地在单个表行中跟踪任务开始时间和结束时间?

时间:2012-07-09 21:28:29

标签: asp.net sql-server-2008 tsql webforms

一个人在网站上打开页面以执行质量控制任务。 在一个页面上,当人员点击开始按钮时,质量控制的活动开始。 在另一个页面上,活动在页面加载时开始。

质量控制活动可以在此人身上结束:

  1. 完成任务,
  2. 保存为不完整或
  3. 只关闭浏览器窗口。
  4. EndTime可以在10秒到30分钟之间的任何地方发生 开始质量控制任务。

    问题: 如果您的表格中包含 ActivityID StartTime EndTime 列, 什么是保存这些信息的最佳方式 在更新现有记录的行为是否发生在插入记录的存储过程之外的情况下?必须捕获StartTime,这很简单,但是,在任务完成后很长时间,必须捕获唯一Activity的End Time,并且必须将Activity EndTime从NULL更改为“完成”。

    需要考虑的一些方案:

    这条路线是否可以接受......?编写一个proc来在页面加载时调用Insert。 作为proc的一部分,插入新活动和开始时间,以及 返回ActivityID的值(这里描述的一个方法: Get the ID of last inserted records)。 当网页点击“结束”事件时,则传递从中返回的ActivityID 第一个proc,并调用一个proc,为AcitivityID添加End Time 来自第一个过程。

1 个答案:

答案 0 :(得分:1)

  insert into [Table_2] ([valueStart]) values('start');
  select SCOPE_IDENTITY();

  int sqlIden = SQLcommand.execute();

  // perform task

  update [Table_2] set [valueFinish] = 'finish' where [id] = sqlIden.ToString();