#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. Извините, как я могу это сделать? 🙂