cancel
Showing results for 
Search instead for 
Did you mean: 
Subscribe

Hi,

using DB2MVS11 (DB2 for z/OS v11) datasource. If a table will be renamed PowerDesigner is generating scripts like

...
drop table "tmp_TABLETT";
rename table TABLETT to "tmp_TABLETT";
...
insert into TABLETTSSS (C1, C2)
select C1, C2
from "tmp_TABLETT";

Searching for the definition of the rename table syntax I found
rename [table ][%OLDQUALIFIER%]%OLDTABL% to %NEWTABL%

So the %NEWTABL% will be taken from the %OLDTABL% by adding a "tmp_" prefix. Do we have the possiblity to change "tmp_" to another value and maybe restrict the length of %NEWTABL% to 15 characters in all Statements (DROP, RENAME, and INSERT)?

If I only modify %NEWTABL% variable with %[[?][-][<x>][.[-]<y>][<options>]:]<variable>% syntax only the rename table statement will be changed. Drop and Iinsert stay at "tmp_TABLETT".

Many thanks

Robert

0 Likes
View Entire Topic
GeorgeMcGeachie
Active Contributor
0 Likes

It looks like you need to change the script that PD generates when renaming tables, which is in the database definition file at

Script\Objects\Table\Rename

I haven't tried it myself, but I think this will work. If the first 4 characters of the new table name are "tmp_", it produces a different new table name which is the string "drp_" followed by the original table name:

.if .4:%NEWTABL% == "tmp_"
alter table [%QUALIFIER%]%OLDTABL%
rename to drp_%OLDTABL%
.else
alter table [%QUALIFIER%]%OLDTABL%
rename to %NEWTABL%
.endif

Please let me know if this works 🙂