如何同步父表和子表之间的列(但在末尾添加列)?

2020-09-26 07:20发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)对于具有PK-FK关系的父表和子...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


对于具有PK-FK关系的父表和子表,情况如下:

父母桌儿童桌

--------------------- ----------------------

PK_COL#<===== PK_COL#

ATT1 ATT1

ATT2 ATT2

时间#

父表的主键为PK_COL,而子表的主键为PK_COL + TIME

需要使子表列与父表保持同步,即。 父表列的任何更改(数据类型更改,重命名等)将立即反映在子表列中。 因此,我为除TIME#之外的所有列设置了子级和父级之间的复制,并且效果很好。

但是,当将新列添加到父表时,例如 ATT3然后在子表中始终按如下所示在ATT2之后添加:

父母桌儿童桌

--------------------- ----------------------

PK_COL#<=== PK_COL#

ATT1 ATT1

ATT2 ATT2

ATT3 ATT3

时间#

通过这种行为,当我们生成2个模型版本之间的增量时,我们总是会得到BACKUP CHILD TABLE,DROP CHILD TABLE和CREATE CHILD TABLE的脚本,并使用新的ATT3,然后从备份中复制回来。 因为通常,Child表的数据量非常大,所以此脚本将需要很长时间才能在数据库中运行和完成。 因此,我们更喜欢ALTER Table ADD列语法,为此,我们需要在子表的末尾添加新列ATT3。

使用VbScript在父表上添加新列时,是否可以删除复制链接并在子表的末尾添加该列? 以及父表的哪个事件处理程序级别?

4条回答
宇峰Kouji
2020-09-26 08:09

嗨乔治,

生活不是那么简单:)。

基于表复制,整个子表已与父表同步。 因此,其( #PK_COL ,ATT1,ATT2)中的所有列(除了其自己的部分复合键#TIME外)都与Parent列保持同步。 因此,您不能在这些列上移动或更改任何内容,包括移动。 它只是只读的,因此您没有机会进行更改。

每当在父表中添加新列ATT3时,我都希望拥有

Parent_Tab( #PK_COL ,ATT1,ATT2,ATT3),则子表应类似于Child_Tab(( #PK_COL ,ATT1,ATT2,# TIME ,ATT3)和这些活动必须在用户在Parent表上添加新列时自动完成,因此我认为唯一的方法是在Parent Validate或类似的东西上编写带有事件处理的VB脚本。

一周热门 更多>