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;

查询demo表结果为:

之前插入的两条数据,新增字段f2的值为默认值"f2"。

版权声明:著作权归作者所有。

相关推荐

JavaScript里null与undefined的区别与相似点

初次看,null和undefined看似是一样的,但远非如此。 本文将探讨JavaScript中null和undefined的区别和相似之处。null是什么?有两个你应该理解的null特性:null是空的或不存在的值。null必须显式赋值。将null的值赋给a示例:let a = null; console.log(a); // 输出null un

Java检查非null值有必要同时使用@NonNull和Objects.requireNonNull()吗

Java的@NonNull和Objects.requireNonNull()常常会被用来限制值为非null值,它们有什么不同呢?@NonNull在引入@NonNull之前,我们要求使用非null值时,往往需要在javadoc里做说明。编译器是没有办法对javadoc进行干预。使用注解类型@NonNull后,编译器就可以在编译时对代码做检查。这也有利于一些ide根据注解类型,对null值的代码给出提

Linux命令useradd添加用户的默认值说明

Linux添加用户的命令useradd会使用选项指定的值在加上默认文件/etc/default/useradd设置的值初始化新增的用户。这里将对useradd的默认值做下说明。查看默认值[root@xxx home]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/e