我有一个表,其中每个记录有一个Value
,VersionEffective
和VersionExpiration
列。目前,VersionEffective
列正确填写,但VersionExpiration
列默认为'9999-12-31'
。对于具有相同值的记录,只有最新VersionEffective
的记录不应过期。剩下的应该是。具体而言,当插入新记录时,如果先前存在具有相同值的活动记录,则该记录将以其VersionExpiration
等效于新记录的VersionEffective
而过期。我有一个存储过程,可以在插入时正确设置VersionEffective
/VersionExpiration
,但我需要返回并追溯更新旧记录的VersionExpiration
字段。将版本添加到SQL Server表
什么我目前的想法是类似以下的东西:
UPDATE fubarTable as t
SET t.VersionExpiration = (
SELECT TOP 1 VersionEffective
FROM fubarTable as f
WHERE t.Value = f.Value
ORDER BY VersionEffective DESC
)
;
但是,这是行不通的。有任何想法吗?
所以你问如何做出上述表示的工作?或者要求您的版本系统有不同的实现? – cdlong 2013-04-23 19:07:25
我正在寻找不同的实现方式,因为我相当确信我所提议的并不是远程接近可行的方式。 – Fibs 2013-04-23 19:15:43