SQL删除数据表中字段时出现【由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN *** 失败。 】

时间:2021-08-30 22:21:51

今天做个功能,先是在程序中向数据表中新增字段,然后再删除该表中不需要的字段,第一步的时候还是蛮顺利的,可是第二步时就卡那里了,删除不了。提示出现了

SQL删除数据表中字段时出现【由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN *** 失败。 】

当然,这个图片是我在SQL里去测试时截的,vs后台删不了其实也是这个原因。找了好多办法来解决都没搞定,后面知道是约束的问题,也去删约束,可是我不能没新增一个字段就去删除一个约束,不合理。

后来我发现,是不是我在新增字段的时候给它赋初值才导致这个问题的,我就把那里去掉了,结果果然猜对了。

//string strfacj = "alter table tAuthorityc add " + TextBox3.Text.ToString().Trim() + " bit default 'False'";
 string strfacj = "alter table tAuthorityc add " + TextBox3.Text.ToString().Trim() + " bit";

我在新增字段时,不给它设置默认值False,后面删除该字段的时候就不会出现上述问题了,其实根源是什么,我还是不知道,只能说避免了这个问题而已。还要好好学习啊。