Hello, Dmitry!

Dmitriy A. Beloshistov wrote:

Update rdb$indices set rdb$index_inactive=0 where rdb$index_inactive=1

Так не делаю, потому как от мастеров не слышал, что это кошерно.

это как раз очень даше кошерно.

Хм, а с каких это пор Update`тить системные таблицы, чтобы "брюки превратились..."
> при наличии специальной конструкции ALTER INDEX стало кошерным?

"системные таблицы" - слишком общее понятие. какие-то апдейтить разумеется нельзя, а другие - очень даже можно.
например, rdb$functions, если надо поменять имя функции из dll или само
имя dll.
и rdb$indices в плане активации-деактивации индекса тоже можно.
особенно если база битая, например, в справочниках убилась часть записей, рестор не пройдет из-за нарушения FK.
Это в 2.1 (а может и в 2.0) сейчас FB при такой ошибке пропускает
индекс и активирует остальные.
А до этих версий рестор обламывался, и в базе оставались неактивированными х.з. сколько индексов, причем неизвестно, таких
же "проблемных" или нормальных.

Мне даже софтину пришлось написать "для внутреннего использования",
которая ищет все неактивные индексы, и пытается поштучно активировать
именно через update, ибо тут alter index или update пофиг. главное
commit :-)

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34


Ответить