如何从SQLServer2005表中删除字段

Mac*_*iej 5 sql sql-server-2005

我试过这个:

ALTER TABLE My.Table DROP MyField
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

-MyField不是约束.

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

表中只有一行数据,只是添加了字段.

编辑: 只是为了跟进,sql确实缺少了COLUMN.现在我更加认真地看错了:

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

编辑:

ALTER TABLE TableName DROP Constraint ConstraintName
Run Code Online (Sandbox Code Playgroud)

工作,之后,我能够使用以前的代码删除列.感谢你们两个,谢谢.

Bri*_*ndy 10

我想你只是缺少COLUMN关键字:

ALTER TABLE TableName DROP COLUMN ColumnName
Run Code Online (Sandbox Code Playgroud)

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

你可以这样做:

ALTER TABLE TableName DROP ConstraintName
Run Code Online (Sandbox Code Playgroud)

对于您拥有的每个约束.

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

DROP INDEX TableName.IndexName
Run Code Online (Sandbox Code Playgroud)


Lan*_*ney 4

Brian 解决了您原来的问题 - 对于您的新问题(对象“some_object__somenumbers”依赖于“MyField”列),这意味着您存在依赖性问题。像索引、外键引用、默认值等。要删除约束,请使用:

ALTER TABLE TableName DROP ConstraintName
Run Code Online (Sandbox Code Playgroud)

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