Restaurou o banco de dados com os índices inativados? Claro que era somente um situação de contingência,
porque você continua precisando deles. Então para REATIVAR os índices novamente, rode este código no
banco de dados:
As tabelas que apresentarem erros, o índice não será ativado, mas você continua precisando dele –
recomendo avaliar e corrigir – depois de corrigir, rode o script novamente.
SET TERM ^; execute block returns (x varchar(255)) as declare variable ordem integer; declare variable stm varchar(1024); begin for select y,stm, x from ( SELECT 1 y,' alter index '||trim(rdb$index_name)||' active ' stm , rdb$index_name x from rdb$indices where rdb$index_inactive=1 and (not rdb$index_name like 'FK%') and rdb$unique_flag=0 union SELECT 2 y, ' alter index '||trim(rdb$index_name)||' active ' stm , rdb$index_name x from rdb$indices where rdb$index_inactive=1 and (not rdb$index_name like 'FK%') and rdb$unique_flag=1 union SELECT 3 y, ' alter index '||trim(rdb$index_name)||' active ' stm , rdb$index_name x from rdb$indices where rdb$index_inactive=1 and (rdb$index_name like 'FK%') ) k order by y into :ordem, :stm, :x do begin in autonomous transaction do execute statement stm; --execute statement 'commit work'; suspend; when any do begin --exception; end end end^ SET TERM;^