Как я понял нужно простоперенумеровать все артикулы?
тогда это можно сделать так:
Код:
alter table supermag.smcard disable all triggers;
update supermag.smcard set globalarticle=article; <- это мы запомнили старый артикул
commit;
update supermag.smcard set article=rownum; <- это мы перенумеровали артикулы
alter table supermag.smcard enable all triggers;
теперь надо обновить арткулы во всех связанных таблицах, у меня версия СМ 1.26.3 и обновлять артикулы надо подставляя имена таблиц в оператор
Код:
alter table таблица disable all triggers;
update таблица f set f.article=(select t.article from supermag.smcard t where t.globalarticle=f.article) ;
commit;
alter table таблица enable all triggers;
имена таблиц можно взять из ссылочной целостности таблицы supermag.smcard, это можно в PL\SQL Developer глянуть.
потом просто очистить глобальный артикул
Код:
alter table supermag.smcard disable all triggers;
update supermag.smcard set article=null;
commit;
alter table supermag.smcard enable all triggers;
Но все это очень стремно..оооочччччччень.
Для того чтобы решиться на перенумерование артикулов надо иметь очень весомые доводы...