Увеличьте количество десятичных знаков в столбце без удаления зависимостей

#sql-server

#sql-сервер

Вопрос:

У меня есть таблица с примерно 1,5 миллионами записей, и я хочу изменить тип данных для одного столбца с decimal(18, 2) на decimal(18, 4) (добавить два знака после запятой). Если бы я попытался с этим кодом:

 ALTER TABLE MyTable 
ALTER COLUMN MyColumn1 decimal(18, 4) NO NULL
GO
  

Однако SQL Server не позволяет этого, поскольку существует более 20 представлений, индексов и процедур, зависящих от этой таблицы:

ИЗМЕНИТЬ ТАБЛИЦУ ИЗМЕНИТЬ СТОЛБЕЦ MyColumn1 не удалось, поскольку один или несколько объектов обращаются к этому столбцу.

Есть ли способ для меня добавить десятичные разряды без предварительного удаления зависимостей? Поскольку эта база данных находится в режиме реального времени, мы не можем позволить себе некоторое время оставаться без какой-либо структуры.

Комментарии:

1. Я не знаю другого способа, кроме удаления индексов, а затем добавления их обратно позже. Но, вероятно, вы можете справиться с этим довольно быстро, и проблема с индексом / представлением может привести к меньшей задержке, чем вы думаете.

2. Вы используете режим разработки таблицы из SSMS или пытаетесь изменить тип decimal (20,4) из-за того, что длина десятичных знаков всегда равна длине целого числа

3. @AdnanAhmedAnsari Да, я пробовал это раньше. Безуспешно.