SQL Server添加字段设置默认值,Null和非Null字段的区别
SQL Server添加设置默认值的字段:
ALTER TABLE {TABLENAME}
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL}
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
[WITH VALUES]
对于旧的数据,NULL和非NULL字段的区别是:
- NULL:如果添加的字段可以为NULL,那么对于旧的f数据,新字段的值为NULL
- 非NULL:如果添加的字段为非NULL,那么对于旧的数据,新字段的值为设置的默认值。
示例
创建了demo表,并且插入一条记录,id=1.
create table demo (id int not null);
insert into demo values (1);
添加null字段f1,设置默认值为"f1"
alter table demo add f1 nchar(10) null default 'f1';
查询demo表
select * from demo;
结果为:
新增可以为NULL的字段f1的值为NULL,不是默认值"f1"。
插入新的记录id=2,并查询
insert into demo(id) values (2);
select * from demo;
结果为:
新插入的字段,f1没有设置值,值为默认值"f1"。
新增非NULL字段f2,设置默认值为"f2"。
alter table demo add f2 nchar(10) not null default 'f2';
select * from demo;
之前插入的两条数据,新增字段f2的值为默认值"f2"。