【发布时间】:2021-01-01 13:00:34
【问题描述】:
我有一个存储记录的表(在 SQL Server 中),如下所示。 Old_Id 的目的是用于更改跟踪。
意味着当我想更新一条记录时,原始记录必须保持不变,但必须插入一条新记录,其中包含新的 Id 和更新的值,并且修改后的记录 ID 在 Old_Id专栏
Id Name Old_Id
---------------------
1 Paul null
2 Paul 1
3 Jim null
4 Paul 2
5 Tim null
我的问题是:
当我搜索 id = 1 或 2 或 4 时,我想选择所有相关记录。
在这种情况下,我想查看以下 id 的记录:1、2、4
怎么写成存储过程?
即使这样做是不好的做法,我也无法更改此逻辑,因为它的旧数据库而且它是一个相当大的数据库。
有人可以帮忙吗?
【问题讨论】:
-
没时间写,但递归 CTE 是您应该开始寻找的地方。至少假设“Microsoft SQL db”是指 Sql Server 而不是 Access。
-
我认为您应该无法更改 id=2 因为有一条 old_id=2 的记录?
-
向我们展示您的尝试。
-
我还没有找到答案...
标签: sql sql-server select