Vadim Mescheryakov wrote:
Задача такая: FB SS 2.0.0 В базе был домен Char10 (Char(10)) Изменили у домена длину поля (руки бы оторвать) на Char(15), вместо того что бы поменять описание поля в одной тблице на другой домен. Пытаюсь в IbExpert исправить ALTER DOMAIN CHAR10 TYPE CHAR(10) CHARACTER SET WIN1251 Сервер возвращает ошибку: This operation is not defined for system tables. unsuccessful metadata update. New size specified for column CHAR10 must be at least 15 characters.
Ну, всё правильно. Увеличивать можно, уменьшать нельзя, может там длинные данные есть.
Что можно сделать что бы исправить? Создать новый домен и перекинуть на него все поля старого CHAR10?
Сам с доменами не работаю, так что не уверен, что оно позволит перебазировать с длинного на короткий, по сути опасность-то таже. Можно попробовать хак - проапдейтить rdb$fields у этого домена. Если твёрдо уверен, что там ещё нет данных длиннее 10. Если бы это был системный домен, а не пользовательский, тоиссь касался бы только одной таблицы, я бы посоветовал ещё на всякий пожарный проапдейтить поле само в себя по всей таблице, срезать хвостовики у записей пусть и коротких в смысловом содержании, но появившихся после увеличения длины домена. Проделать это со всеми таблицами, понятно, накладно, но я бы таки одел на свечку презерватив. В общем, это всё к вопросу об исключительной полезности и удобстве пользовательских доменов, по которому много, нудно и неоднократно высказывались старые большевики... ;)
-- Regards. Ded.

