Не удается изменить тип столбца в MSSQL

#sql-server #constraints #alter #bigint

#sql-сервер #ограничения #изменить #bigint

Вопрос:

При попытке изменить тип столбца с int на bigint,

 alter table MSDAT_ARCH.dbo.NAME_OF_PK_COLUMN alter column ARME_NR bigint
  

mssql выдает ошибку:

 The object STD_XXX depends on column object NAME_OF_PK_COLUMN
  

Суть в том, что первичный ключ является пользовательским типом с пользовательским стандартным значением.

Когда я пытаюсь удалить его, mssql сообщает мне, что это не ограничение.

Мне удалось просто изменить тип столбца на int, но как я могу удалить значение по умолчанию, которое фактически используется и другими таблицами?

Таблица содержит 1,7 миллиарда строк, поэтому простое удаление и повторное создание — не мой любимый вариант 🙂

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

1. Опубликуйте фактическую схему, а не словесное описание схемы. Какие инструкции вы пытались изменить тип? Какое отношение значение по умолчанию имеет к изменению типа столбца?

2. Я отредактировал исходное сообщение и добавил инструкцию alter table. Я также не знаю связи между значением по умолчанию и типом столбца. И я мог бы изменить тип с пользовательского типа на int.

3. И схема. Вы упоминаете значения по умолчанию и ограничения, которые здесь не отображаются. Вам нужно опубликовать любые ограничения, внешние ключи, индексы или первичные ключи, которые используют этот столбец, если вы хотите получить ответ о них

4. Тем не менее, можете ли вы опубликовать схему фрагмента БД?

5. Извините, как я могу это сделать? 🙂