Vincent ROURE wrote: > To handle customer changes, we often use ADD definitions and DROP > definitions in ALTER TABLE statement. > Some times, we reach the 'Row too long' limit (Internal length of a > table row limit). > > But, when we try to delete some columns (DROP definition) to reduce > total length and we do some new ADD definition with lower size, we > receive same error (-2000 : Row to long). > > Is there any method to reset the internal length as existing column > sizes ?
In the drop_definition of the alter table statement <drop_definition> ::= DROP <column_name>,... [<cascade_option>] [RELEASE SPACE] | DROP (<column_name>,...) [<cascade_option>] [RELEASE SPACE] | DROP CONSTRAINT <constraint_name> | DROP PRIMARY KEY (see http://www.sapdb.org/htmhelp/d7/efa64e014c11d3a97d00a0c9449261/frameset.htm ) you missed the explanation for RELEASE SPACE: The columns are marked as dropped in the metadata of the table. A DROP definition does not automatically reduce the memory requirements of the underlying table. RELEASE SPACE forces the column values of the dropped columns to be dropped in every row in the table. With large tables, in particular, this may take more time, since extensive copy operations have to be carried out. --> It is not just an easy 'reset of some meta-info', it is 'copying of the remaining columns' and therefore making each row smaller --> decrease the internal length of the row. Elke SAP Labs Berlin _______________________________________________ sapdb.general mailing list [EMAIL PROTECTED] http://listserv.sap.com/mailman/listinfo/sapdb.general
