ArfatM Ответов: 2

Измените столбец таблицы с varchar(250) на int. Получение следующее сообщение об ошибке


Цитата:
Ошибка
Изменить таблицу "Table_XX" не удалось, так как добавленный фиксированный столбец может привести к тому, что существующие данные выйдут за пределы максимально допустимого размера строки таблицы в 8060 байт.

или

Ошибка:
Таблица "Table_XX" была создана, но ее максимальный размер строки превышает допустимый максимум в 8060 байт. Вставить или обновить эту таблицу не удастся, если результирующая строка превысит предельный размер


Что я уже пробовал:

alter table Table_XX ALTER column myid_id int

2 Ответов

Рейтинг:
1

OriginalGriff

Возможно, это стоит сделать.

ALTER INDEX Table_XX REBUILD ALL
и повторите попытку, особенно если общее количество столбцов нигде не приближается к пределу, а столбцы были добавлены и удалены ранее, или текущий столбец идентификатора имеет значительный размер, поскольку удаленные столбцы занимают место до тех пор, пока таблица не будет перестроена.

Если это не решит проблему, я бы предложил попробовать вот это:

1) Создайте новую пустую таблицу с новыми спецификациями столбцов.
2) вручную скопируйте каждую строку из оригинала в новую, Преобразуя ваши значения VARCHAR в INT по мере продвижения.
3) переименуйте оригинал в Table_XX_ORIG, а новый - в Table_XX