Как я могу изменить тип таблицы с индексом? Я попытался сделать столбец alter для пустой таблицы, чтобы изменить тип с даты на varchar (15), и получил сообщения о том, что у него есть зависимости от столбца (который оказался индексами).
Я смог легко обойти это локально, щелкнув правой кнопкой мыши по индексу и написав сценарий для удаления, но мне нужно развернуть его на других серверах, где у меня не будет доступа к имени индекса.
Есть ли способ, которым я могу сделать сценарий, который будет отбрасывать любой индекс, позвольте мне сделать это изменение типа данных в столбце, а затем прочитать индекс? Благодарность!
источник
Чтобы изменить любой столбец, сначала необходимо удалить индекс или любые другие ограничения, содержащие этот столбец, а затем снова создать индекс / ограничение. Но эта задача должна выполняться администратором базы данных, потому что любое падение индекса или ограничения будет влиять, с одной стороны, на запрашиваемые данные - в то время как индекс удаляется, а с другой стороны, наложить блокировку на всю таблицу на время восстановления индекса. создано. Вы должны убедиться, что пользователи будут знать об этом небольшом или большом (зависит от размера таблицы) обслуживании. Удачи!
Однако создание индекса может быть выполнено с опцией Online, которая меньше блокирует.
источник
Если вы сначала удалите индекс, вы не сможете читать его снова, пока индекс не будет создан заново. Что вы можете сделать, чтобы отключить применение ограничения.
После запуска этого сценария ограничение не будет применено, и вы можете вводить данные, не беспокоясь о проверках ограничений. Вы можете изменить таблицу снова, чтобы снова включить ограничения.
Любые предыдущие нарушения не будут проверены или исправлены, но любые записи после применения ограничения будут проверены.
источник
В ответе Нико есть 2 ошибки (2 условия object_id отсутствуют). И не надо
group by
:источник