如何从SQL Server 2005表中删除字段

时间:2008-10-30 17:49:33

标签: sql sql-server-2005

我试过了:

ALTER TABLE My.Table DROP MyField

并收到此错误:

-MyField不是约束。

- 不要放弃约束。查看以前的错误。

表格中只有一行数据,而且该字段刚刚添加。

修改 为了跟进,sql确实缺少了COLUMN。 现在我更加认真地看错了:

  • 对象'some_object__somenumbers'依赖于列'MyField'
  • ALTER TABLE DROP COLUMN MyField失败,因为一个或多个对象访问此列。

修改

ALTER TABLE TableName DROP Constraint ConstraintName

工作,之后我能够使用前面的代码删除列。感谢你们两位,谢谢。

3 个答案:

答案 0 :(得分:10)

我认为你只是错过了COLUMN关键字:

ALTER TABLE TableName DROP COLUMN ColumnName

您还需要确保首先删除依赖于ColumnName的任何约束。

您可以通过以下方式执行此操作:

ALTER TABLE TableName DROP ConstraintName

对于您拥有的每个约束。

如果您有基于列的索引,则还需要先删除这些索引。

DROP INDEX TableName.IndexName

答案 1 :(得分:4)

Brian解决了你原来的问题 - 对于你的新问题(对象'some_object__somenumbers'依赖于列'MyField'),这意味着你有一个依赖问题。类似索引,外键引用,默认值等。要删除约束,请使用:

ALTER TABLE TableName DROP ConstraintName

此外 - 您需要删除依赖于该列的所有约束,然后才能删除列本身。

答案 2 :(得分:0)

ALTER TABLE TABLE_NAME ADD COLUMN SR_NO INTEGER(10)NOT NULL;