【发布时间】:2019-05-13 16:16:21
【问题描述】:
我有一个表,我需要根据记录插入和每天更新来维护记录版本控制。 “RecordVersion”表如下所示:
VersionID RecordID RecordValue DateID (FK Calendar)
--------- -------- ----------- ------
1 R1 50 1
2 R2 60 1
3 R3 100 2
4 R2 80 2
5 R3 150 5
6 R4 200 5
“日历”表如下所示:
DateID Date
------ --------
1 1-May-19
2 2-May-19
3 3-May-19
4 4-May-19
5 5-May-19
6 6-May-19
如何填充 RecordVersion 表:
- 2019 年 5 月 1 日,记录 R1 和 R2 插入
- 19 年 5 月 2 日,插入了新记录 R3 并更新了退出 R2(R1 保持不变)。因此,对于新的“插入”和“更新”操作,都会生成新的版本号
- 在 2019 年 5 月 3 日和 2019 年 5 月 4 日未进行任何更改,未生成版本记录
- 2019 年 5 月 5 日又出现了另一个新的“插入”和“更新”,因此两个版本被装箱
输出(VersionHistory)应如下所示:
DateID VersionID RecordID RecordValue
1 1 R1 50 --Initial Record
1 2 R2 60
2 1 R1 50 -- Non Versioned
2 4 R2 80 -- Versioned for Update (50>80)
2 3 R3 100 -- New Insert
3 1 R1 50 |
3 4 R2 80 --- No Change -- Just Replicate Prev.
3 3 R3 100 |
4 1 R1 50 |
4 4 R2 80 --- No Change -- Just Replicate Prev.
4 3 R3 100 |
5 1 R1 50 -- Non Versioned
5 4 R2 80 -- Non Versioned
5 5 R3 150 -- Versioned for Update (100>150)
5 6 R4 200 -- New Insert
如果有人可以使用 TSQL 生成上述输出,那就太好了。我的 SQLServer 版本是:
Microsoft SQL Azure (RTM) - 12.0.2000.8
【问题讨论】:
-
您需要提供一些您尝试过的努力示例。请提供您尝试过的方法,您很可能会得到更快的响应。
标签: sql-server tsql azure-sql-database azure-sql-server