如果在设置约束时未使用constraint名字,例如ALTER TABLE A ADD BB decimal(18,5) default(0),则在删除该列前需要删除约束,可有两种方法删除约束
1.查询约束名
查询确切DEFAULT的名称:
select * from sysobjects O INNER JOIN sysCOLUMNS C
ON O.ID = C.CDEFAULT AND O.parent_obj = C.ID
WHERE O.xtype = 'D' and O.parent_obj = object_id('A')--表A
AND C.NAME = 'BB' --字段BB
--按道理DEFAULT的名字是默认这种格式DF_表名_字段名
ALTER TABLE A
DROP CONSTRAINT DF_A_BB (DF_t1_fb的意思为DF_表名_字段名)
GO
ALTER TABLE A --然后删除
DROP COLUMN BB
2.直接删除列时 会出现错误提示,提示中会显示约束名
ALTER TABLE A
DROP CONSTRAINT DF_A_BB (DF_t1_fb的意思为DF_表名_字段名)
GO
ALTER TABLE A --然后删除
DROP COLUMN BB