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

2020-09-26 07:20发布

         点击此处--->   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在父表上添加新列时,是否可以删除复制链接并在子表的末尾添加该列? 以及父表的哪个事件处理程序级别?

         点击此处--->   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条回答
三十六小时_GS
1楼-- · 2020-09-26 08:00

你好索科拉

答案很简单-只需将新列移动到列列表中的所需位置,即可:

*浏览器

*表格符号

*表格属性中的列列表

嗯,它对我有用:)

SC_Yao
2楼-- · 2020-09-26 08:05

提示-选择它并用鼠标拖动它

宇峰Kouji
3楼-- · 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脚本。

callcenter油条
4楼-- · 2020-09-26 08:20

我无法复制这种情况-

  • 如果打开了列复制,那么副本表中的列与原始列完全相同,那么如何将#TIME添加到副本表中?
  • 如果关闭了列复制,则可以将自己的列添加到副本中,但是原始副本中的新列不会在副本中镜像。

请提供表和键的复制选项的屏幕截图

一周热门 更多>