将上一条记录更新为非活动记录



我每天将数据读取到SQL中。当我将数据读入SQL时,我需要跟踪记录的更改时间。这是通过"记录版本"、"生效日期"one_answers"IsActive"列完成的,如下所示。

IDtbody> <<tr>
名称记录版本生效日期IsActive
1欧盟12020/01/011

这将需要在两个语句中完成:一个语句用于UPDATE(过时的记录),第二个语句用于INSERT(新记录)。

假设过程"将数据读入表";有新记录的ID,它看起来像这样:

UPDATE <table>
SET IsActive = 0
WHERE ID = @recordID
AND IsActive = 1;

后面跟着一个写语句:

INSERT INTO <table> 
(ID, Name, RecordVersion, EffectiveDate, IsActive)
VALUES (@ID, @Name, @RecordVersion, @EffectiveDate, 1);

这是一个通用的方法,还有其他的方法来构建INSERT取决于什么适合你的使用。

您还应该考虑将此操作包含在显式TRANSACTION中是否合适,以及通过TRY-CATCH

处理异常的适用性。关于同一主题的更高级的主题是"时态表"。@Larnu在评论中提到

最新更新