一个人在网站上打开页面以执行质量控制任务。 在一个页面上,当人员点击开始按钮时,质量控制的活动开始。 在另一个页面上,活动在页面加载时开始。
质量控制活动可以在此人身上结束:
EndTime可以在10秒到30分钟之间的任何地方发生 开始质量控制任务。
问题: 如果您的表格中包含 ActivityID , StartTime 和 EndTime 列, 什么是保存这些信息的最佳方式 在更新现有记录的行为是否发生在插入记录的存储过程之外的情况下?必须捕获StartTime,这很简单,但是,在任务完成后很长时间,必须捕获唯一Activity的End Time,并且必须将Activity EndTime从NULL更改为“完成”。
需要考虑的一些方案:
人A开始一个活动,然后完成它。 10秒后, B人开始和结束。
人A开始活动,然后人B开始10秒 之后,A人提前5秒完成比赛。(我不知道 相信任何一种范围功能都可以在这里工作...... http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/?)
这条路线是否可以接受......?编写一个proc来在页面加载时调用Insert。 作为proc的一部分,插入新活动和开始时间,以及 返回ActivityID的值(这里描述的一个方法: Get the ID of last inserted records)。 当网页点击“结束”事件时,则传递从中返回的ActivityID 第一个proc,并调用一个proc,为AcitivityID添加End Time 来自第一个过程。
答案 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();