Я пробовал это:
ALTER TABLE My.Table DROP MyField
и получил эту ошибку:
-MyField не является ограничением.
-Не удалось сбросить ограничение. См. Предыдущие ошибки.
В таблице всего одна строка данных, и поле только что добавлено.
Обновлено: Просто чтобы продолжить, sql действительно отсутствовал COLUMN. Теперь я получаю еще более серьезные ошибки:
Обновлено:
ALTER TABLE TableName DROP Constraint ConstraintName
работал, после этого я смог использовать предыдущий код для удаления столбца. Спасибо вам обоим.
Моя ошибка, должно быть mssql, но кто-то его уже обновил.


Я думаю, вам просто не хватает ключевого слова COLUMN:
ALTER TABLE TableName DROP COLUMN ColumnName
Вам также необходимо убедиться, что любое ограничение, зависящее от ColumnName, сначала отбрасывается.
Вы можете сделать это:
ALTER TABLE TableName DROP ConstraintName
Для каждого ограничения, которое у вас есть.
Если у вас есть индексы на основе столбца, вам также нужно сначала удалить эти индексы.
DROP INDEX TableName.IndexName
Брайан решил вашу исходную проблему - для вашей новой проблемы (объект some_object__somenumbers зависит от столбца MyField) это означает, что у вас проблема с зависимостью. Что-то вроде индекса, ссылки на внешний ключ, значения по умолчанию и т. д. Чтобы отменить ограничение, используйте:
ALTER TABLE TableName DROP ConstraintName
Кроме того, вам нужно будет сбросить все ограничения, зависящие от этого столбца, прежде чем он позволит вам удалить сам столбец.
ALTER TABLE TABLE_NAME ADD COLUMN SR_NO INTEGER(10)NOT NULL;
Вы отметили этот mysql, но вопрос говорит о SQLServer 2005. Не могли бы вы уточнить.