【发布时间】:2009-01-22 01:26:58
【问题描述】:
如果您有一个包含另一个表的历史记录(更新、删除)的表,如果关联的更新行发生在删除操作之后,您将如何提取它?
表有以下与数据无关的列
ID int, -- 身份
OP varchar -- 删除或更新操作,编码为“D”或“U”
Removed_Date -- 从“实时”表中删除该行的日期
我尝试过类似的方法
选择 *
从历史表作为 table1
在 table1.Removed_Date 上将 historytable 作为 table2 加入 table2.Removed_Date
这会导致表格中的一行出现多行(十个或更多)重复项。
【问题讨论】:
-
“关联”是指用户对之前删除的 SAME 记录执行了更新吗?或者,您是否正在寻找在删除记录后对任何记录执行的第一次更新?
-
我正在寻找一种方法来识别合并,所以说人 A 和人 B 被识别为同一个人(也许一个记录有一个昵称)。应用程序将其存储为删除然后更新。
-
然后,您需要历史记录表中的一个或多个字段,您可以使用这些字段来确定此删除操作和此更新操作是对属于同一逻辑人的记录执行的。
-
另外,不应该是删除和插入(如何更新已删除的记录)?
-
嗯,这不是我写的应用程序。我同意它似乎设计得很糟糕。对于合并操作,A 的记录被删除,B 的记录被保留。
标签: sql-server