如何从SQLServer2005表中删除字段
我试过这个:如何从SQLServer2005表中删除字段,sql,sql-server-2005,Sql,Sql Server 2005,我试过这个: ALTER TABLE My.Table DROP MyField 得到了这个错误: -MyField不是一个约束 -无法删除约束。请参阅前面的错误 表中只有一行数据,字段刚刚添加 编辑: 接下来,sql确实缺少一列。 但现在我发现了更严重的错误: 对象“some\u object\uu somenumbers”依赖于列“MyField” ALTER TABLE DROP COLUMN MyField失败,因为一个或多个对象访问此列 编辑: ALTER TABLE Table
ALTER TABLE My.Table DROP MyField
得到了这个错误:
-MyField不是一个约束
-无法删除约束。请参阅前面的错误
表中只有一行数据,字段刚刚添加
编辑:
接下来,sql确实缺少一列。
但现在我发现了更严重的错误:
- 对象“some\u object\uu somenumbers”依赖于列“MyField”
- ALTER TABLE DROP COLUMN MyField失败,因为一个或多个对象访问此列
ALTER TABLE TableName DROP Constraint ConstraintName
工作之后,我能够使用前面的代码删除该列。感谢你们两位。我想你们只是缺少了列关键字:
ALTER TABLE TableName DROP COLUMN ColumnName
您还需要确保首先删除依赖于ColumnName的任何约束
您可以通过以下方式完成此操作:
ALTER TABLE TableName DROP ConstraintName
对于您拥有的每个约束
如果有基于该列的索引,则还需要先删除这些索引
DROP INDEX TableName.IndexName
Brian解决了您原来的问题-对于您的新问题(对象“some\u object\u somenumbers”依赖于列“MyField”),这意味着您存在依赖性问题。例如索引、外键引用、默认值等。要删除约束,请使用:
ALTER TABLE TableName DROP ConstraintName
此外,您需要先删除该列的所有约束,然后它才会允许您删除该列本身。您将该列标记为“mysql”,但问题是SQLServer2005。我的错误应该是mssql,但是已经有人更新了。
ALTER TABLE TABLE_NAME ADD COLUMN SR_NO INTEGER(10)NOT NULL;