У меня есть столбец с ограничением «ПО УМОЛЧАНИЮ». Я хотел бы создать скрипт, который удаляет этот столбец.
Проблема в том, что он возвращает эту ошибку:
Msg 5074, Level 16, State 1, Line 1
The object 'DF__PeriodSce__IsClo__4BCC3ABA' is dependent on column 'IsClosed'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE DROP COLUMN IsClosed failed because one or more objects access this column.
Я не смог найти простой способ удаления столбца и всех связанных с ним ограничений (нашел только большие скрипты, которые смотрят в системную таблицу ... ДОЛЖЕН (!!) быть "хороший" способ сделать это. )
И так как имя ограничения DEFAULT было сгенерировано случайным образом, я не могу удалить его по имени.
Обновление :
Тип ограничения - "ПО УМОЛЧАНИЮ".
Я видел решения, которые вы все предложили, но я нахожу их все "грязными" ... Вам не кажется?
Я не знаю, с Oracle или MySQL, но можно сделать что-то вроде:
DROP COLUMN xxx CASCADE CONSTRAINTS
И он отбрасывает все связанные ограничения ...
Или, по крайней мере, он автоматически удаляет ограничения, сопоставленные с этим столбцом (по крайней мере, ограничения CHECK!)
Нет ли в MSSQL ничего подобного?