Sql Server增加字段、修改字段、修改类型、修改默认值
作者:mmseoamin日期:2023-12-14

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;