黑马程序员技术交流社区
标题:
sql删除一列出错了,什么原因啊??
[打印本页]
作者:
赵学辉
时间:
2012-7-6 11:38
标题:
sql删除一列出错了,什么原因啊??
用“alter table table_1 drop 字段名”删除一列是出错了
消息 3728,级别 16,状态 1,第 1 行
'shicheng' 不是约束。
消息 3727,级别 16,状态 0,第 1 行
未能删除约束。请参阅前面的错误信息。
是怎么回事啊???
作者:
肖琦
时间:
2012-7-6 11:42
约束没有删除,是不是设置了主外键关系约束或是其他约束没有被删除
作者:
许庭洲
时间:
2012-7-6 12:08
1,在删除数据库表字段之前,先确认该表有没有数据;
2,若该表有数据,delete from tablename;
3,删除之后,用“alter table table_1 drop 字段名”删除一列;
作者:
刘玺
时间:
2012-7-6 12:17
SQL删除一列语法:
ALTER TABLE table_name
DROP COLUMN column_name
你写的少了 COLUMN,加上就行了
作者:
张寅平
时间:
2012-7-6 14:00
我觉得应该先删除该列的数据,再删除该列的约束,然后才能用楼上的语法删除该列。
作者:
王玲星
时间:
2012-7-6 17:17
你删除的时候会提示你,有默认约束依赖该字段,那么你需要先删除默认约束(错误提示里会有默认约束名),再删除字段:
ALTER TABLE 表名 DROP CONSTRAINT 默认约束名
GO
ALTER TABLE 表名 DROP COLUMN 字段名
GO
作者:
文硕
时间:
2012-7-6 17:51
我用sql2008试了几下,发现只是少了COLUMN,与约束好像没有关系.
作者:
侯慧杰
时间:
2012-7-6 20:06
再语法对的情况下,以下几个问题会造成此错误:约束,或是外键的问题,别的表依赖此列可能会造成此问题
作者:
肖琦
时间:
2012-7-6 20:50
楼上几位讲到少了column
其实和column没有关系,sql server2008 在修改表的情况下再修改列,不写默认就是针对column进行修改,因此和少不少没有关系,大家可以试试...
作者:
魏振龙
时间:
2012-7-7 23:11
可以把外键约束暂时停止了,再删除数据,删除后再恢复外键约束
具体语句是
alter table 表的名字
nochek constraint 外键约束名字
truncate table 表的名字
alter table 表的名字
check constraint 外键约束名字
作者:
常静华
时间:
2012-7-8 00:28
我测试了下,的确和约束没有关系,主要是少了COLUMN的原因,你加上就好了
作者:
戴水平
时间:
2012-7-8 10:36
一般来说在对数据库表的删除或者是列的删除都要检查一下它们的依赖关系,把这一搞清楚了,再来对其删除都是用drop进行删除
针对楼主的问题alter table table_1 drop 字段名这在sql2005中必须要加column指明是列
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2