1、修改字段名:
alter table 表名 rename column A to B
2、修改字段类型:
alter table 表名 alter column 字段名 type not null
3、修改字段默认值
alter table 表名 add default (0) for 字段名 with values
如果字段有默认值,则需要先删除字段的约束,在添加新的默认值,
select c.name from sysconstraints a
inner join syscolumns b on a.colid=b.colid
inner join sysobjects c on a.constid=c.id
where a.id=object_id('表名')
and b.name='字段名'
根据约束名称删除约束
alter table 表名 drop constraint 约束名
根据表名向字段中增加新的默认值
alter table 表名 add default (0) for 字段名 with values
更完整写法:
IF not EXISTS(select c.name from sysconstraints a inner join syscolumns b on a.colid=b.colid inner join sysobjects c on a.constid=c.id where a.id=object_id('mis_black_list') and b.name='IP' and c.name='DF_mis_black_list_IP') alter TABLE mis_black_list ADD CONSTRAINT [DF_mis_black_list_IP] DEFAULT ('0.0.0.0') FOR IP;
4、增加字段:
alter table 表名 add 字段名 type not null default 0
5、删除字段:
alter table 表名 drop column 字段名;
-- 修改字段类型长度 alter TABLE userinfo alter COLUMN name varchar(100); -- 修改字段类型 alter TABLE userinfo alter COLUMN age float; -- 修改字段不允许 NULL 值 alter TABLE userinfo alter COLUMN age float NOT NULL; -- 添加主键 alter TABLE userinfo ADD CONSTRAINT id_name PRIMARY KEY(ID); -- 修改字段名 (执行后会有提示:注意: 更改对象名的任一部分都可能会破坏脚本和存储过程。) exec sp_rename "userinfo.age","userage","COLUMN"; -- 添加字段名 alter TABLE userinfo ADD gender bit DEFAULT 0; -- 删除表 drop TABLE userinfo;