我有一個表,其中每個記錄有一個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