从SQL到teradata时态表的历史数据加载

从SQL到teradata时态表的历史数据加载,teradata,temporal,temporal-database,Teradata,Temporal,Temporal Database,我需要对SQL server表中的历史类型2数据进行处理,以处理时态表。我之前问过这个问题,但并没有完全问出来,问题中只提到了第一部分。下面是相同的链接: 抱歉,如果我重复问题,但该线程看起来死了,我可以在这里使用一些帮助。 我需要SQL server版本1、2、3中的三个数据版本。e、 g Version 1 - Effective start date Effective End Date 1/1/10 1/1/11 Version 2 - Eff

我需要对SQL server表中的历史类型2数据进行处理,以处理时态表。我之前问过这个问题,但并没有完全问出来,问题中只提到了第一部分。下面是相同的链接: 抱歉,如果我重复问题,但该线程看起来死了,我可以在这里使用一些帮助。 我需要SQL server版本1、2、3中的三个数据版本。e、 g

Version 1 -
 Effective start date   Effective End Date
 1/1/10                  1/1/11
Version 2 - 
Effective start date    Effective End Date
1/1/11                   1/1/14
Version 3 - 
Effective start date    Effective End Date
 1/1/14                  12/31/9999

我可以为版本1手动设置时段开始和结束时间,但由于版本1已过期,因此我无法添加版本2,并在teradata中保留版本1。如果我尝试这样做,它实际上会覆盖版本1本身,并且teradata中只存在最新版本。有人能帮忙吗。谢谢

你的意思是你可以使用sequence Valid time(序列有效时间)添加第一条记录,但不能按原样添加所有三条记录。对吗?你也可以使用sequence Valid time(序列有效时间)添加两个版本,因为它们只是历史记录…如果不是,那么尝试编写两个插入查询并指定时间段以及序列有效时间限定符。是@anwaar_,我可以添加第一个,然后我尝试进行更新。谢谢你的评论。我没有尝试两次插入。是的,也许会有用。不确定teradata将如何处理这一问题。我会尝试一下,让你知道。嗨,安瓦尔,我可以一个接一个地插入多个版本。但还是有一个小问题。假设我的时态表的键是A列,B列,所以在合并中我选择A=A和B=B。如果匹配,则更新,如果不匹配,则插入。然后,列A和B在版本1和版本2之间匹配。所以teradata尝试进行更新,结果显示0行已更新。因此,我添加了一个新的列C。C存储版本号,并将匹配条件更改为a=a、B=B和C=C。现在,C在版本1和版本2之间不匹配。所以,试着做一个插入和插入版本2也。继续…但作为时态表的主要索引仍然是A和B。所以它将新版本视为时态更改,让我一个接一个地插入多个版本1。如果我看到当前记录,则只有一条记录可见。我仍在检查是否可以在不添加列版本号的情况下执行相同的任务。因为在最后一个表中,我没有列版本号。如果我不能不添加版本号,那么我要做的下一个过程是“从这个时态表加载到一个新的时态表,它没有列版本号,但有所有其他列”。