点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在将模型更改应用于数据库...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在将模型更改应用于数据库...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
在将模型更改应用于数据库时,我们正在挑战PowerDesigner 16.6 SP02的问题。 我们需要更改一列,以允许NULL值(尚不是必需的)来禁止它们(即,将该列设置为强制性)。 我们正在使用Oracle 11g DBMS,它对生成的SQL脚本进行了一些修改(围绕某些DDL操作的一些前置和后置操作)。
问题在于PD正在生成表重新创建,即使用tmp_前缀对其进行重命名,使用NOT NULL列创建一个新表,并将值从旧表插入新表中。 这是不受欢迎的行为,其原因有两个:
1)该表很大,要移动的数据很多(因此在软件升级过程中需要花费大量时间)。
2)无法使用我们的DBMS文件修改(在ORA11GR1下:: Script \ Objects \ Column \ ModifyColnNull),因为在生成的SQL中未使用此节点(将删除并重新创建表)。
我对此行为进行了一些调查。 从NOT NULL更改为允许NULL时,它将使用DBMS树中的节点(ModifyColnNull)(并生成SQL命令:ALTER TABLE表MODIFY列NULL)。 Oracle12c和SQL Server 2014 DBMS相同(我们使用的是Oracle和MS SQL Server安装)。 奇怪的是,在Postgre SQL 9.x DBMS中,即使从NOT NULL更改为NULL,它也不起作用。 因此看来,使用ALTER TABLE或表重新创建方式的决定在某种程度上受模型的DBMS文件的影响。 而且,当然,在"将模型更改应用于数据库"对话框中,我们选择了"尽可能使用alter语句"和"备份表"选项。
有人可以帮助我们吗?
尝试用值填充列,然后运行ddl将其更改为非null。
一周热门 更多>