创建一张表
CREATE TABLE AccessInfo
(
AccessionNo VARCHAR NOT NULL,
HospitalCode VARCHAR NOT NULL,
ProcedureOffice VARCHAR NOT NULL,
FilmCount int DEFAULT 1,
PrintStatus VARCHAR DEFAULT '1',
PrintTime DATETIME
)
复制代码
新增一列
ALTER TABLE AccessInfo ADD IdCardNo VARCHAR NOT NULL DEFAULT '';
删除一列
ALTER TABLE AccessInfo DROP COLUMN IdCardNo;
错误原因
在 SQL Server 中如果一列具有以下条件,那么无法直接删除
- 列是主键
- 列是外键
- 列有默认值
IdCardNo 有默认值,所以无法直接删除。
解决方案
首先删除默认值约束,然后再删除列。但是,如何删除默认值约束?在删除报错信息中有默认值约束。在上面的错误信息中有这样一行 对象'DF__AccessInf__IdCar__300424B4' 依赖于 列'IdCardNo'
。默认值约束名就是 DF__AccessInf__IdCar__300424B4
。
- 删除约束
ALTER TABLE AccessInfo DROP CONSTRAINT DF__AccessInf__IdCar__300424B4;
- 删除列
ALTER TABLE AccessInfo DROP COLUMN IdCardNo;