Как удалить поле из таблицы SQLServer2005 - PullRequest
5 голосов
/ 30 октября 2008

Я пробовал это:

ALTER TABLE My.Table DROP MyField

и получил эту ошибку:

-MyField не является ограничением.

-Не могу сбросить ограничение. Смотрите предыдущие ошибки.

В таблице только одна строка данных, и поле было добавлено.

EDIT: Просто для продолжения, sql действительно отсутствовала COLUMN. Теперь я получаю еще более серьезные ошибки:

  • Объект 'some_object__somenumbers' зависит от столбца 'MyField'
  • ALTER TABLE DROP COLUMN MyField не выполнен, поскольку один или несколько объектов обращаются к этому столбцу.

EDIT:

ALTER TABLE TableName DROP Constraint ConstraintName

сработало, после этого я смог использовать предыдущий код для удаления столбца. Спасибо вам обоим, спасибо.

Ответы [ 3 ]

10 голосов
/ 30 октября 2008

Я думаю, вам просто не хватает ключевого слова COLUMN:

ALTER TABLE TableName DROP COLUMN ColumnName

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

Вы можете сделать это:

ALTER TABLE TableName DROP ConstraintName

Для каждого имеющегося ограничения.

Если у вас есть индексы, основанные на столбце, вам также нужно сначала удалить эти индексы.

DROP INDEX TableName.IndexName
4 голосов
/ 30 октября 2008

Брайан решил вашу исходную проблему - для вашей новой проблемы (объект 'some_object__somenumbers' зависит от столбца 'MyField') это означает, что у вас есть проблема зависимости. Что-то вроде индекса, ссылки на внешний ключ, значения по умолчанию и т. Д. Чтобы удалить ограничение, используйте:

ALTER TABLE TableName DROP ConstraintName

Также - вам нужно удалить все ограничения, зависящие от этого столбца, прежде чем он позволит вам удалить сам столбец.

0 голосов
/ 29 марта 2010
ALTER TABLE TABLE_NAME ADD COLUMN SR_NO INTEGER(10)NOT NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...