我每天将数据读取到SQL中。当我将数据读入SQL时,我需要跟踪记录的更改时间。这是通过"记录版本"、"生效日期"one_answers"IsActive"列完成的,如下所示。
名称 | 记录版本 | 生效日期 | IsActive | 1 | 欧盟 | 1 | 2020/01/01 | 1 |
---|
这将需要在两个语句中完成:一个语句用于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在评论中提到